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