![JAVA程序員培訓(xùn)定制課程c04.ppt_第1頁](http://file.renrendoc.com/FileRoot1/2019-2/1/e9562c76-52b8-46ce-babc-7ce6d2f2fa80/e9562c76-52b8-46ce-babc-7ce6d2f2fa801.gif)
![JAVA程序員培訓(xùn)定制課程c04.ppt_第2頁](http://file.renrendoc.com/FileRoot1/2019-2/1/e9562c76-52b8-46ce-babc-7ce6d2f2fa80/e9562c76-52b8-46ce-babc-7ce6d2f2fa802.gif)
![JAVA程序員培訓(xùn)定制課程c04.ppt_第3頁](http://file.renrendoc.com/FileRoot1/2019-2/1/e9562c76-52b8-46ce-babc-7ce6d2f2fa80/e9562c76-52b8-46ce-babc-7ce6d2f2fa803.gif)
![JAVA程序員培訓(xùn)定制課程c04.ppt_第4頁](http://file.renrendoc.com/FileRoot1/2019-2/1/e9562c76-52b8-46ce-babc-7ce6d2f2fa80/e9562c76-52b8-46ce-babc-7ce6d2f2fa804.gif)
![JAVA程序員培訓(xùn)定制課程c04.ppt_第5頁](http://file.renrendoc.com/FileRoot1/2019-2/1/e9562c76-52b8-46ce-babc-7ce6d2f2fa80/e9562c76-52b8-46ce-babc-7ce6d2f2fa805.gif)
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1,運(yùn)算符、表達(dá)式和流程控制,第四章,2,本章內(nèi)容,變量及其作用域 Java運(yùn)算符 表達(dá)式 分支語句 if-else語句 switch語句 循環(huán)語句 for 循環(huán) while 循環(huán) do-while 循環(huán) 特殊的循環(huán)控制語句,3,Java變量分類,變量用于記錄數(shù)值可變的數(shù)據(jù) 按所屬的數(shù)據(jù)類型劃分: 基本數(shù)據(jù)類型變量 引用數(shù)據(jù)類型變量 按被聲明的位置劃分: 局部變量:方法或語句塊內(nèi)部定義的變量 成員變量:方法外部、類的內(nèi)部定義的變量,4,局部變量聲明和初始化,Java變量使用前必須先聲明和初始化(賦初值) 局部變量聲明語法格式 DataType varName1=value1,varName2=value2 變量聲明和初始化舉例: public void amethod() int i; int j = i+5 ; / 編譯出錯,變量i還未被初始化 double d = 3.14; MyDate m; m = new MyDate(22,7,1964); System.out.println(m.getYear(); ,5,局部變量聲明和初始化示例,public class TestLocal public static void main(String args) int x; if (args0 != null) x = 7; int y = x; ,6,成員變量聲明和初始化,成員變量在類的定義中聲明 在創(chuàng)建對象的同時創(chuàng)建有關(guān)的成員變量 成員變量創(chuàng)建后系統(tǒng)自動對其進(jìn)行 默認(rèn)初始化 顯式初始化,7,成員變量聲明和初始化示例,public class Book private String title; public String getTitle() return title; public static void main(String args) Book b = new Book(); String s = b.getTitle(); / Compiles and runs String t = s.toLowerCase(); / Runtime Exception! ,8,變量作用域,局部變量的作用域就是它所在的方法或語句塊 在程序調(diào)用方法(進(jìn)入語句塊)時,局部變量才被創(chuàng)建并可用,隨方法(語句塊)的退出,局部變量將被銷毀 成員變量依附于對象(局部變量)存在,具有與對象相同的生存期和作用域。,9,變量作用域舉例,public class Test private int i=1; public void method1() int i=4, j=5; this.i = i + j; method2(7); public void method2(int i) int j=8; this.i = i + j; System.out.println(this.i); public static void main(String args) Test t = new Test(); t.method1(); ,main,棧內(nèi)存,t,this,i,j,method1,4,5,7,8,i,j,this,method2,Test對象,i,10,Ex1,練習(xí)上頁例程:Test.java,在各方法中添加輸出語句顯示Test對象屬性i(this.i) 的值,分析程序執(zhí)行流程并體會各變量的作用域。 /輸出語句可采用:System.out.println(this.i);,11,運(yùn)算符,算術(shù)運(yùn)算符: +,*,/,%,+, 關(guān)系運(yùn)算符: ,=, 賦值運(yùn)算符: = 擴(kuò)展賦值運(yùn)算符:+=,=,*=,/= 字符串連接運(yùn)算符: +,12,等于運(yùn)算符示例(1),class ComparePrimitives public static void main(String args) System.out.println(“character a = a? “ + (a = a); System.out.println(“character a = b? “ + (a = b); System.out.println(“5 != 6? “ + (5 != 6); System.out.println(“5.0 = 5L? “ + (5.0 = 5L); System.out.println(“true = false? “ + (true = false); ,13,等于運(yùn)算符示例(2),boolean b = false; if (b = true) System.out.println(“b is true”); else System.out.println(“b is false”); ,14,等于運(yùn)算符示例(3),import java.awt.Button; class CompareReference public static void main(String args) Button a = new Button(“Exit“); Button b = new Button(“Exit“); Button c = a; System.out.println(“Is reference a = b? “ + (a = b); System.out.println(“Is reference a = c? “ + (a = c); ,15,增量、減量運(yùn)算符示例(1),class MathTest static int players = 0; public static void main (String args) System.out.println(“players online: “ + players+); System.out.println(“The value of players is “ + players); System.out.println(“The value of players is now “ + +players); ,16,增量、減量運(yùn)算符示例(2),int x = 2; int y = 3; if (y = x+) | (x +y) System.out.println(“x = “ + x + “ y = “ + y); ,17,邏輯運(yùn)算符(1),邏輯運(yùn)算符功能 !- 邏輯非 & - 邏輯與 | - 邏輯或 - 邏輯異或 &- 短路與 | - 短路或 邏輯運(yùn)算符功能說明:,18,邏輯運(yùn)算符(2),短路邏輯運(yùn)算符應(yīng)用 ,19,邏輯運(yùn)算符(3),class TestOR public static void main (String args) if (isItSmall(3) | (isItSmall(7) System.out.println(“Result is true“); if (isItSmall(6) | (isItSmall(9) System.out.println(“Result is true“); public static boolean isItSmall(int i) if (i 5) System.out.println(“i less than 5“); return true; else System.out.println(“i greater than 5“); return false; ,20,位運(yùn)算符,位運(yùn)算符功能 - 取反 & - 按位與 | - 按位或 - 按位異或 位運(yùn)算符功能說明:,&,|,21,移位運(yùn)算符(1),左移 “ab; “將二進(jìn)制形式的a逐位右移b位,最高位空出的b位補(bǔ)原來的符號位; 無符號右移 “ab;“將二進(jìn)制形式的a逐位右移b位,最高位空出的b位補(bǔ)0。,22,移位運(yùn)算符(2),移位運(yùn)算符性質(zhì) 適用數(shù)據(jù)類型:byte、short、char、int、long,對低于int型的操作數(shù)將先自動轉(zhuǎn)換為int型再移位 對于int型整數(shù)移位ab,系統(tǒng)先將b對32取模,得到的結(jié)果才是真正移位的位數(shù) 對于long型整數(shù)移位時ab ,則是先將移位位數(shù)b對64取模,23,移位運(yùn)算符(3),移位運(yùn)算符應(yīng)用舉例,24,賦值運(yùn)算符(1),賦值運(yùn)算符= 當(dāng)“=“兩側(cè)的數(shù)據(jù)類型不一致時,可以適用默認(rèn)類型轉(zhuǎn)換或強(qiáng)制類型轉(zhuǎn)換原則進(jìn)行處理 long l = 100; int i = (int)l; 特例:可以將整型常量直接賦值給byte, short, char等類型變量,而不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,只要不超出其表數(shù)范圍 byte b = 12; /合法 byte b = 4096; /非法,25,賦值運(yùn)算符(2),當(dāng)把一個引用變量賦給另一個引用變量是, 兩個變量引用了同一個對象。(String除外) 示例: import java.awt.Dimension; class ReferenceTest public static void main (String args) Dimension a = new Dimension(5,10); System.out.println(“a.height = “ + a.height); Dimension b = a; b.height = 30; System.out.println(“a.height = “ + a.height + “after change to b“); ,26,賦值運(yùn)算符(3),擴(kuò)展賦值運(yùn)算符,27,字符串連接運(yùn)算符 +,“+“ 除用于算術(shù)加法運(yùn)算外,還可用于對字符串進(jìn)行連接操作 int i = 300 +5; String s = “hello, “ + “world!“; “+“運(yùn)算符兩側(cè)的操作數(shù)中只要有一個是字符串(String)類型,系統(tǒng)會自動將另一個操作數(shù)轉(zhuǎn)換為字符串然后再進(jìn)行連接 String a = “String“; int b = 3; int c = 7; System.out.println(a + b + c); System.out.println(a + (b + c));,28,表達(dá)式,表達(dá)式是符合一定語法規(guī)則的運(yùn)算符和操作數(shù)的序列 a 5.0 + a (a-b)*c-4 i30 & i%10!=0 表達(dá)式的類型和值 對表達(dá)式中操作數(shù)進(jìn)行運(yùn)算得到的結(jié)果稱為表達(dá)式的值 表達(dá)式的值的數(shù)據(jù)類型即為表達(dá)式的類型 表達(dá)式的運(yùn)算順序 首先應(yīng)按照運(yùn)算符的優(yōu)先級從高到低的順序進(jìn)行 優(yōu)先級相同的運(yùn)算符按照事先約定的結(jié)合方向進(jìn)行,29,運(yùn)算符優(yōu)先級,30,Ex2,練習(xí)下面的程序,排除編譯錯誤,分析其輸出 結(jié)果: public class MyTest public static void main(String args) int a=10 int i = a; int j = a3; int k = a32; System.out.println(“i=” + i ); System.out.println(“j=“ + j ); System.out.println(“k=“ +k ); System.out.println(“m=“ +m ); ,31,分支語句,分支語句實(shí)現(xiàn)程序流程控制的功能 ,即根據(jù)一定的條件有選擇地執(zhí)行或跳過特定的語句 Java分支語句分類 if-else 語句 switch 語句,32,if-else語句語法格式,if(boolean類型表達(dá)式) 語句或語句塊; if(boolean類型表達(dá)式) 語句或語句塊; else if(boolean類型表達(dá)式) 語句或語句塊; else 語句或語句塊; ,33,if-else語句應(yīng)用舉例,public class Test public static void main(String args) Test t = new Test(); t.test(75); public void test(int age) if (age250) System.out.println(“是個妖怪!“); else System.out.println(“此人芳齡 “ + age + “ 馬馬乎乎啦!“); ,34,switch語句語法格式,switch(exp) case const1: statement1; break; case const2: statement2; break; case constN: statementN; break; default: statement_dafault; break; ,35,switch語句應(yīng)用舉例,public class Test public static void main(String args) int i = 1; switch (i) case 0: System.out.println(“zero“); break; case 1: System.out.println(“one“); break; case 2: System.out.println(“two“); break; default: System.out.println(“default“); break; ,36,switch語句有關(guān)規(guī)則,表達(dá)式expr的返回值必須是下述幾種類型之一:int, byte, char, short; case子句中的值const 必須是常量,且所有case子句中的值應(yīng)是不同的; default子句是任選的; break語句用來在執(zhí)行完一個case分支后使程序跳出switch語句塊;,37,Ex3,參照M04-24,26頁的例子,練習(xí)使用if-else、switch分支語句,注意體會break/default語句的用法;,38,循環(huán)語句,循環(huán)語句功能 在循環(huán)條件滿足的情況下,反復(fù)執(zhí)行特定代碼 循環(huán)語句的四個組成部分 初始化部分(init_statement) 循環(huán)條件部分(test_exp) 循環(huán)體部分(body_statement) 迭代部分(alter_statement) 循環(huán)語句分類 for 循環(huán) while 循環(huán) do/while 循環(huán),39,for 循環(huán)語句,語法格式 for (init_statement; test_exp; alter_statement) body_statement 應(yīng)用舉例 public class ForLoop public static void main(String args) int result = 0; for(int i=1; i=100; i+) result += i; System.out.println(“result=“ + result); ,40,while 循環(huán)語句,語法格式 init_statement while( test_exp) body_statement; alter_statement; 應(yīng)用舉例 public class WhileLoop public static void main(String args) int result = 0; int i=1; while(i=100) result += i; i+; System.out.println(“result=“ + result); ,41,do/while 循環(huán)語句,語法格式 init_statement do body_statement; alter_statement; while( test_exp); 應(yīng)用舉例 public class WhileLoop public static void main(String args) int result = 0, int i=1; do result += i; i+; while(i=100); System.out.println(“result=“ + result); ,42,特殊流程控制語句,break 語句 break語句用于終止某個語句塊的執(zhí)行 break; break語句出現(xiàn)在多層嵌套的語句塊中時,可以通過標(biāo)簽指明要終止的是哪一層語句塊 label1: label2: label3: break label2; ,43,特殊流程控制語句,break 語句用法舉例 public class TestBreak public static void main(String args) for(int i = 0; i10; i+) if(i=3) break; System.out.println(“ i =“ + i); Sys
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)六年級口算題卡
- 小學(xué)六年級800道數(shù)學(xué)口算題
- 2025年沈陽貨運(yùn)從業(yè)資格試題及答案詳解
- 2025年太原貨車從業(yè)資格證答題技巧
- 監(jiān)控錄像管理協(xié)議書(2篇)
- 2024-2025學(xué)年高中地理課時分層作業(yè)13噪聲污染及其防治含解析湘教版選修6
- 2024-2025學(xué)年八年級數(shù)學(xué)上冊第十一章三角形11.2與三角形有關(guān)的角作業(yè)設(shè)計新版新人教版
- 人事行政助理年終工作總結(jié)
- 公司辦公室工作總結(jié)
- 人力資源部年度個人工作計劃
- 某縣城區(qū)地下綜合管廊建設(shè)工程項(xiàng)目可行性實(shí)施報告
- 《架空輸電線路導(dǎo)線舞動風(fēng)偏故障告警系統(tǒng)技術(shù)導(dǎo)則》
- 2024年計算機(jī)二級WPS考試題庫
- JJF(京) 92-2022 激光標(biāo)線儀校準(zhǔn)規(guī)范
- 普惠金融政策解讀
- 2024年疾控中心支部工作計劃范本
- 廣東省廣州黃埔區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 法理學(xué)課件馬工程
- 《無菌檢查培訓(xùn)》課件
- 2024-2030年中國香菇行業(yè)銷售狀況及供需前景預(yù)測報告
- 高中英語必背3500單詞表(完整版)
評論
0/150
提交評論