版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、講師:李賀飛,本章內(nèi)容,第一節(jié) 分支結(jié)構(gòu)第二節(jié) 循環(huán)結(jié)構(gòu)第三節(jié) 特殊流程控制,第一節(jié) 分支結(jié)構(gòu),程序流程控制,順序結(jié)構(gòu)程序從上到下逐行地執(zhí)行,中間沒有任何判斷和跳轉(zhuǎn)。分支結(jié)構(gòu)根據(jù)條件,選擇性地執(zhí)行某段代碼。有if…else和switch兩種分支語句。循環(huán)結(jié)構(gòu)根據(jù)循環(huán)條件,重復(fù)性的執(zhí)行某段代碼。有while、do…while、for三種循環(huán)語句。。,程序流程控制,順序結(jié)構(gòu)Java中定義成員變量時(shí)采用合法的前向引用。
2、如:public class Test{ int num1 = 12; int num2 = num1 + 2;}錯(cuò)誤形式:public class Test{ int num2 = num1 + 2; int num1 = 12;},if語句三種格式:1. if(true){執(zhí)行代碼塊; }2. if(條件表達(dá)式){執(zhí)行代碼塊;
3、 } else{執(zhí)行代碼塊; },3. if(條件表達(dá)式){執(zhí)行代碼塊; } else if (條件表達(dá)式){執(zhí)行代碼塊; } …… else{執(zhí)行代碼塊; },分支語句1: if-else語句,if-else語句應(yīng)用舉例,public class TestAge{public static void main(S
4、tring args[]){int age = 75;if (age250) {System.out.println("是個(gè)妖怪!");} else {System.out.println(“人家芳齡 " + age +" ,馬馬乎乎啦!");}}},從鍵盤輸入小明的期末成績。當(dāng)成績?yōu)?00分時(shí),獎(jiǎng)勵(lì)一輛BMW;當(dāng)成績?yōu)閇80-99]時(shí),獎(jiǎng)勵(lì)一個(gè)臺(tái)ipho
5、ne5s;當(dāng)成績?yōu)閇60-80]時(shí),獎(jiǎng)勵(lì)一本參考書;其它時(shí),什么獎(jiǎng)勵(lì)也沒有。,if語句例題1,if語句例題2,編寫程序:由鍵盤輸入三個(gè)整數(shù)分別存入變量num1、num2、num3,對(duì)它們進(jìn)行排序(使用 if-else if-else),并且從小到大輸出。,if語句練習(xí)1,1)對(duì)下列代碼,若有輸出,指出輸出結(jié)果。int x = 4;int y = 1;if (x > 2) { if (y > 2)
6、 System.out.println(x + y); System.out.println("atguigu");} else System.out.println("x is " + x);2)boolean b = true; if(b == false) //如果寫成if(b=fal
7、se)能編譯通過嗎?如果能,結(jié)果是? System.out.println("a"); else if(b) System.out.println("b"); else if(!b) System.out.println("c"); else System.out.pr
8、intln("d");,if語句練習(xí)2,大家都知道,男大當(dāng)婚,女大當(dāng)嫁。那么女方家長要嫁女兒,當(dāng)然要提出一定的條件:高:180cm以上;富:財(cái)富1千萬以上;帥:是。如果這三個(gè)條件同時(shí)滿足,則:“我一定要嫁給他!!!”如果三個(gè)條件有為真的情況,則:“嫁吧,比上不足,比下有余?!比绻齻€(gè)條件都不滿足,則:“不嫁!”,Sysout(“身高: (cm))scanner.nextInt();Sysout(“財(cái)富:
9、 (千萬))scanner.nextDouble();Sysout(“帥否: (true/false)) (是/否)scanner.nextBoolean(); scanner.next(); str.equals(“是”),分支結(jié)構(gòu)2:switch語句,switch(表達(dá)式){case 常量1:語句1;break;case 常量2:語句2;break;… …case 常
10、量N:語句N;break;default:語句;break; },switch語句應(yīng)用舉例,public class Test{ public static void main(String args[]){int i = 1;switch (i) { case 0:System.out.println("zero");
11、break; case 1:System.out.println("one");break; default:System.out.println("default");break; } }},public class Test{ public static voi
12、d main(String args[]){String season = “summer”;switch (season) { case “spring”:System.out.println(“春暖花開");break; case “summer”:System.out.println(“夏日炎炎");break;
13、case “autumn”:System.out.println(“秋高氣爽");break;case “winter”:System.out.println(“冬雪皚皚");break; default:System.out.println(“季節(jié)輸入有誤");break; }}},switch語句有關(guān)
14、規(guī)則,switch(表達(dá)式)中表達(dá)式的返回值必須是下述幾種類型之一: byte,short,char,int,枚舉,String;case子句中的值必須是常量,且所有case子句中的值應(yīng)是不同的;default子句是可任選的,當(dāng)沒有匹配的case時(shí),執(zhí)行defaultbreak語句用來在執(zhí)行完一個(gè)case分支后使程序跳出switch語句塊;如果沒有break,程序會(huì)順序執(zhí)行到switch結(jié)尾,例 題,1.使用 s
15、witch 把小寫類型的 char型轉(zhuǎn)為大寫。只轉(zhuǎn)換 a, b, c, d, e. 其它的輸出 “other”。2.對(duì)學(xué)生成績大于60分的,輸出“合格”。低于60分的,輸出“不合格”。3.根據(jù)用于指定月份,打印該月份所屬的季節(jié)。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季,練 習(xí),編寫程序,從鍵盤接收整數(shù)參數(shù).如果該數(shù)為1-7,打印對(duì)應(yīng)的星期值,否則打印“非法參數(shù)”。,switch和if
16、語句的對(duì)比,if和switch語句很像,具體什么場景下,應(yīng)用哪個(gè)語句呢?如果判斷的具體數(shù)值不多,而且符合byte、 short 、int、 char這四種類型。雖然兩個(gè)語句都可以使用,建議使用swtich語句。因?yàn)樾噬愿?。其他情況:對(duì)區(qū)間判斷,對(duì)結(jié)果為boolean類型判斷,使用if,if的使用范圍更廣。,練 習(xí),編寫程序:從鍵盤上讀入一個(gè)學(xué)生成績,存放在變量score中,根據(jù)score的值輸出其對(duì)應(yīng)的成績等級(jí):sco
17、re>=90 等級(jí):A70=<score<90 等級(jí): B60=<score<70 等級(jí): Cscore<60 等級(jí):D,練 習(xí),從鍵盤分別輸入年、月、日,判斷這一天是當(dāng)年的第幾天 注:判斷一年是否是閏年的標(biāo)準(zhǔn): 1)可以被4整除,但不可被100整除 2)可以被400整除,第二節(jié) 循環(huán)結(jié)構(gòu),循環(huán)結(jié)
18、構(gòu),循環(huán)語句功能在某些條件滿足的情況下,反復(fù)執(zhí)行特定代碼的功能循環(huán)語句的四個(gè)組成部分初始化部分(init_statement)循環(huán)條件部分(test_exp) 循環(huán)體部分(body_statement) 迭代部分(alter_statement) 循環(huán)語句分類for 循環(huán)while 循環(huán)do/while 循環(huán),for 循環(huán)語句,語法格式 for (初始化表達(dá)式①; 布爾值測試表達(dá)式②⑤⑦; 更改表達(dá)式){
19、 語句或語句塊③⑥ ; },,1,,2,,,,3,,,4,,應(yīng)用舉例public class ForLoop {public static void main(String args[]){ int result = 0; for(int i=1; i<=100; i++) { result += i; }
20、 System.out.println("result=" + result);}},for語句例題,編寫程序FooBizBaz.java,從1循環(huán)到150并在每行打印一個(gè)值,另外在每個(gè)3的倍數(shù)行上打印出“foo”,在每個(gè)5的倍數(shù)行上打印“biz”,在每個(gè)7的倍數(shù)行上打印輸出“baz”。,123 foo45 biz6 foo 7 baz…,15 foo biz….105 foo b
21、iz baz…,for語句練習(xí),1.打印1~100之間所有奇數(shù)的和2.打印1~100之間所有是7的倍數(shù)的整數(shù)的個(gè)數(shù)及 總和(體會(huì)設(shè)置計(jì)數(shù)器的思想)3.輸出所有的水仙花數(shù),所謂水仙花數(shù)是指一個(gè)3 位數(shù),其各個(gè)位上數(shù)字立方和等于其本身。 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5,while 循環(huán)語句,語法格式 [初始化語句]while( 布爾值測試表達(dá)式){
22、 語句或語句塊;[更改語句;]}應(yīng)用舉例public class WhileLoop { public static void main(String args[]){ int result = 0;int i=1;while(i<=100) { result += i;
23、 i++;} System.out.println("result=" + result); }},do-while 循環(huán)語句,語法格式[初始化語句]do{ 語句或語句塊; [更改語句;]}while(布爾值測試表達(dá)式); 應(yīng)用舉例public class WhileLoop {
24、 public static void main(String args[]){ int result = 0, i=1; do{ result += i; i++; }while(i<=100); System.out.println("result=" + r
25、esult); }},循環(huán)語句練習(xí),編寫程序一:求1到100之間所有偶數(shù)的和。用for和while語句分別完成。,,嵌套循環(huán),將一個(gè)循環(huán)放在另一個(gè)循環(huán)體內(nèi),就形成了嵌套循環(huán)。其中,for ,while ,do…while均可以作為外層循環(huán)和內(nèi)層循環(huán)。實(shí)質(zhì)上,嵌套循環(huán)就是把內(nèi)層循環(huán)當(dāng)成外層循環(huán)的循環(huán)體。當(dāng)只有內(nèi)層循環(huán)的循環(huán)條件為false時(shí),才會(huì)完全跳出內(nèi)層循環(huán),才可結(jié)束外層的當(dāng)次循環(huán),開始下一次的循環(huán)。設(shè)
26、外層循環(huán)次數(shù)為m次,內(nèi)層為n次,則內(nèi)層循環(huán)體實(shí)際上需要執(zhí)行m*n=mn次。,例題:1)九九乘法表 2)1—100之間的所有質(zhì)數(shù),第三節(jié) 特殊流程控制,特殊流程控制語句1,break 語句break語句用于終止某個(gè)語句塊的執(zhí)行 { …… break; ……}break語句出現(xiàn)在多層嵌套的語句塊中時(shí),可以通過標(biāo)簽指明要終止的是哪一層語句塊 label1:
27、{ …… label2: { ……label3:{ …… break label2; ……} } },特殊流程控制語句1,break 語句用法舉例 public class TestBreak{public static void main(String args
28、[]){ for(int i = 0; i<10; i++){ if(i==3) break; System.out.println(" i =" + i); } System.out.println("Game Over!");}},特殊流程控制語句2,continue 語句continue語句用于跳過某
29、個(gè)循環(huán)語句塊的一次執(zhí)行 continue語句出現(xiàn)在多層嵌套的循環(huán)語句體中時(shí),可以通過標(biāo)簽指明要跳過的是哪一層循環(huán) continue語句用法舉例public class ContinueTest { public static void main(String args[]){ for (int i = 0; i < 100; i++) { i
30、f (i%10==0) continue; System.out.println(i); } } },特殊流程控制語句3,return:并非專門用于結(jié)束循環(huán)的,它的功能是結(jié)束一個(gè)方法。當(dāng)一個(gè)方法執(zhí)行到一個(gè)return語句時(shí),這個(gè)方法將被結(jié)束。與break和continue不同的是,return直
31、接結(jié)束整個(gè)方法,不管這個(gè)return處于多少層循環(huán)之內(nèi),特殊流程控制語句說明,break只能用于switch語句和循環(huán)語句中。continue 只能用于循環(huán)語句中。二者功能類似,但continue是終止本次循環(huán),break是終止本層循環(huán)。break、continue之后不能有其他的語句,因?yàn)槌绦蛴肋h(yuǎn)不會(huì)執(zhí)行其后的語句。標(biāo)號(hào)語句必須緊接在循環(huán)的頭部。標(biāo)號(hào)語句不能用在非循環(huán)語句的前面。,練 習(xí),編寫程序一,打印1-100之間13的
32、倍數(shù),使用continue語句編寫程序二:從鍵盤讀入個(gè)數(shù)不確定的整數(shù),并判斷讀入的正數(shù)和負(fù)數(shù)的個(gè)數(shù),輸入為0時(shí)結(jié)束程序。,補(bǔ)充:最簡單無限循環(huán)格式:while(true) , for(;;),無限循環(huán)存在的原因是并不知道循環(huán)多少次,需要根據(jù)某些條件,來控制循環(huán)。,class PositiveNegative {public static void main(String[] args) {//while(true)S
33、canner scanner = new Scanner(System.in);int a = 0;//統(tǒng)計(jì)正數(shù)的個(gè)數(shù)int b = 0;//統(tǒng)計(jì)負(fù)數(shù)的個(gè)數(shù)for(;;){System.out.println("請(qǐng)輸入一個(gè)整數(shù):");int z = scanner.nextInt();if(z>0)a++;else if(z<0)b++
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 實(shí)驗(yàn)2 java語言基礎(chǔ)實(shí)驗(yàn)
- java基礎(chǔ)試卷
- java基礎(chǔ)方面
- java基礎(chǔ)知
- java基礎(chǔ)筆記
- 俄語基礎(chǔ)語法
- java面試題大全(java基礎(chǔ))
- java基礎(chǔ)階段復(fù)習(xí)題2附答案
- 英語基礎(chǔ)語法
- 基礎(chǔ)語法講義
- perl 基礎(chǔ)語法
- 英語基礎(chǔ)語法基礎(chǔ)版
- java編程基礎(chǔ) 實(shí)例
- java語言基礎(chǔ)組成
- java web基礎(chǔ)總結(jié)
- java程序設(shè)計(jì)基礎(chǔ)第2章陳國君
- java基礎(chǔ)教程
- 俄語基礎(chǔ)語法匯總
- 英語基礎(chǔ)語法講義
- python-基礎(chǔ)語法
評(píng)論
0/150
提交評(píng)論