《程序控制流程》PPT課件.ppt
《《程序控制流程》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《程序控制流程》PPT課件.ppt(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第3章 程序控制流程,3.1 選擇結(jié)構(gòu)程序設(shè)計 3.2 循環(huán)結(jié)構(gòu)程序設(shè)計 3.3 break和continue語句,3.1 選擇結(jié)構(gòu)程序設(shè)計,單條件 if else 多條件 switch,3.1.1 if語句,當(dāng)條件為真(true)時執(zhí)行一個操作 條件為假(false)時執(zhí)行另一個操作,(1)雙分支 if(布爾表達(dá)式) 語句區(qū)塊1 else 語句區(qū)塊2,(2)單分支 if(布爾表達(dá)式) 語句區(qū)塊1,(3)if 的嵌套 if(布爾表達(dá)式1) 語句區(qū)塊1 else if (布爾表達(dá)式2) 語句區(qū)塊2 else if (布爾式3) 語句區(qū)塊3 . else,,(1)雙分支:c3_1
2、.java判斷給出的成績是否及格,public class c3_1 public static void main(String args) int grade; grade=86; if(grade=60) System.out.print(通過,成績是:); System.out.println(grade); else System.out.println(不及格); ,語句塊多行語句,必須加 ,單行語句,程序的運行結(jié)果是: 通過,成績是:86,例c3_2.java 比較兩個數(shù)的大小,import java.awt.*; import java.apple
3、t.*; public class c3_2 extends Applet public void paint(Graphics g) double d1=43.4; double d2=85.3; if(d1=d2) g.drawString(d1+ = +d2,25,25); else g.drawString(d1+ < +d2,25,25); ,(2)單分支c3_3.java 只有當(dāng)成績小于60時,輸出“未通過” 其他不輸出,public class c3_3 public static void main(String args) int grade; gr
4、ade=56; if(grade<60) System.out.print(未通過,成績是:); System.out.println(grade); ,該程序的運行結(jié)果是: 未通過,成績是:56,(3)if語句的嵌套,//例c3_4.java用if嵌套將百分制轉(zhuǎn)換為5分制 public class c3_4 public static void main(String args) int grade=76; if(grade=90)System.out.println(成績:優(yōu)); else if(grade=80)System.out.println(成績:良);
5、 else if(grade=70)System.out.println(成績:中等); else if(grade=60)System.out.println(成績:及格); else System.out.println(成績:不及格); ,例c3_5.java public class c3_5 public static void main(String args) int x,y; x=8;y=4; if(x6) if(y6) System.out.println(“設(shè)備正常”); else System.out.println(設(shè)備出錯);
6、 ,注意:if嵌套時,最近匹配:else 將與離它最近的if配對,程序錯誤反例: 當(dāng)x和y都大于6時,輸出“設(shè)備正常”的 信息;僅當(dāng)x6,y<6時,輸出了“設(shè)備出錯” 而x<=6時什么信息也沒輸出。 問題出在哪里? else同哪個if匹配了?, ,3.1.3 switch語句,從多個分支中選擇一個分支執(zhí)行時 嵌套的if過于繁瑣 例如:對給定的成績grade(介于0100),劃分成 優(yōu):90100 良:8090. 那么能不能根據(jù)kgrade/10的結(jié)果來判斷屬于哪個分?jǐn)?shù)段呢? swtich,switch(表達(dá)式) case 值1:語句區(qū)塊1;break; //分支1 case 值2:語句
7、區(qū)塊2;break; //分支2 case 值n:語句區(qū)塊n;break; //分支n default : 語句區(qū)塊n+1; //分支n+1 ,可以是byte,char,short,int,但不能是float,case后面的值必須是常量,Default可以省略,注意break,,例:c3_6.java 判斷成績等級,import java.awt.*; import java.applet.*; public class c3_6 extends Applet public void paint(Graphics g) int k; int grade=86; //改為7
8、6 ,結(jié)果仍舊是良,因為8:后面沒有break k=grade/10; switch(k) case 10: case 9: g.drawString(成績:優(yōu),25,25); break; case 8: case 7: g.drawString(成績:良,25,25); break; case 6: g.drawString(成績:及格。,25,25); break; default: g.drawString(成績:不及格。,25,25); ,3.1.3 條件運算符三目運算符,適用:簡單的if/else語句 if (xy) m=x; else m=y; 可用下面
9、的條件運算符來替代: m=(xy)?x :y 若xy為true 則表達(dá)式取x的值,否則取y的值 形式: 布爾表達(dá)式1?表達(dá)式2 :表達(dá)式3,表達(dá)式2和表達(dá)式3的類型必須相同,【示例程序c3_7.java】 public class c3_1 public static void main(String args ) int max, min,a,b; int y; a=1; b=2; max=(ab) ? a : b; y=(a!=b) ? 1 : 0; min=(a
10、.print(ty=+y); System.out.println(tmin=+min); ,運行結(jié)果是: max=2 y=1 min=1,,,3.2 循環(huán)結(jié)構(gòu)程序設(shè)計,while do-while for,while(布爾表達(dá)式) 循環(huán)體語句區(qū)塊 ,do 循環(huán)體語句區(qū)塊 while(布爾表達(dá)式),While和do-while的區(qū)別: Dowhile至少執(zhí)行一次循環(huán)體 而while可能一次都不執(zhí)行,3.2.1 while語句,【示例程序c3_8.java】 打印數(shù)字15。 public class c3_8 public static void main(String args)
11、 int counter=1; //循環(huán)變量及其初始值 while(counter<=5) //循環(huán)條件 System.out.println(counter=+counter); counter++; //循環(huán)變量增值 ,,運行結(jié)果如下: counter=1 counter=2 counter=3 counter=4 counter=5,3.2.2 do-while語句,【示例程序c3_9.java】 計算從1開始的連續(xù)n個自然數(shù)之和,當(dāng)其和值剛好超過100時結(jié)束,求這個n值。 import java.awt.*; import java.applet.*; p
12、ublic class c3_9 extends Applet public void paint(Graphics g) int n=0; int sum=0; //循環(huán)變量及其初始值 do n++; sum+=n; //循環(huán)變量增值 while(sum<=100); //循環(huán)條件 g.drawString(sum=+sum,25,25); g.drawString(n=+n,100,25); ,該程序的運行結(jié)果是: sum=105 n=14,3.2.3 for語句,適于:確切知道循環(huán)次數(shù)時 一般形式 for(初值表達(dá)式;布爾表達(dá)式;循環(huán)過程表達(dá)式) 循環(huán)體
13、程序語句區(qū)塊 ,循環(huán)變量賦初值,用來判斷循環(huán)是否繼續(xù),完成修改循環(huán)變量、改變循環(huán)條件,true,false,c3_10.java 求自然數(shù)1100之間所有奇數(shù)之和。,public class c3_10 public static void main(String args) int sum=0,odd; for(odd=1;odd<=100;odd+=2) sum +=odd; System.out.println(sum=+sum+ odd=+odd); ,該程序的運行結(jié)果是: sum=2500 odd=101,,true,false,public cla
14、ss c3_11 public static void main(String args) int f1=1, f2=1; //f1為第一項,f2為第二項 for( int i=1; i<38/2; i++) System.out.print(t+f1+t+f2); //每次輸出兩項 if(i%2==0)System.out.println(n); //每輸出兩次共4項后換行 f1=f1+f2; //計算下一個奇位項 f2=f2+f1; //計算下一個偶位項 ,例c3_11 求Fibanacci數(shù)列,Fibonacci數(shù)列:1,1,2,3,5,8,的前36個
15、數(shù)。,構(gòu)造該數(shù)列的遞推關(guān)系是: F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n3),,,,運行結(jié)果如下: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 177112865746368 75025 121393196418317811 514229 83204013462692178309 35245785702887922746514930352,,【特1】省略部分成分的for,for(;;) 可以,但要在循環(huán)體內(nèi)加循環(huán)變量,
16、小心“死循環(huán)”,【示例程序c3_12.java】 編寫求解(即1+2+3++9+10)的程序。 public class c3_12 public static void main(String args) int i=1; //1.初值表達(dá)式寫在循環(huán)語句之前 int sum=0; for(;;) sum +=i++; //2.循環(huán)過程表達(dá)式i++寫在了循環(huán)體內(nèi) if(i10) break; //3.布爾表達(dá)式寫在了循環(huán)體內(nèi)的if語句中 System.out.println(sum=+sum); ,【特2】for頭中使用逗號表達(dá)式,for結(jié)構(gòu)頭的構(gòu)件中
17、,“初值表達(dá)式”和“循環(huán)過程表達(dá)式”中還可以使用逗號運算符。這也是Java中唯一使用逗號運算符的地方。,public class c3_13 public static void main(String args) int i,sum; for(i=1,sum=0;i<=10;i++) //初值表達(dá)式中使用了逗號運算符 sum+=i; System.out.println(sum=+sum); 該程序的運行結(jié)果是: sum=55,for(i=1,sum=0;i<=10;i++,sum+=i;) ; System.out.println(sum=+sum); //千萬別忘記f
18、or末尾的;否則下一句就被當(dāng)成循環(huán)體了,思考,while vs. do-while vs. for及其適用場合,c3_15.java統(tǒng)計選票,設(shè)有李L、王 W、張Z 三人競選領(lǐng)導(dǎo),由群眾投票表決 import java.io.*; public class c3_15 public static void main(String args)throws IOException BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); //上面一條語句是有關(guān)鍵盤輸入數(shù)據(jù)流處理的,詳細(xì)內(nèi)容將在第1
19、2章講解 int Ltotal=0,Wtotal=0,Ztotal=0; char name; String c1; System.out.print(enter letter L or W or Z name, # to end:); c1=keyin.readLine( );//從鍵盤上讀取一個字符串賦給c1 name=c1.charAt(0);// charAt(0)從一個字符串中截取第0個字符 while(name!=#) switch(name) case L: case l: Ltotal=Ltotal+1; break; case W: ca
20、se w: Wtotal=Wtotal+1; break; case Z: case z: Ztotal=Ztotal+1; break; System.out.print(enter letter L or W or Z name ,# to end:); c1=keyin.readLine( ); name=c1.charAt(0); //while循環(huán)結(jié)束,System.out.println( Ltotal=+Ltotal); System.out.println( Wtotal=+Wtotal); System.out.println( Ztotal=+Ztot
21、al); //end of class,3.2.7循環(huán)嵌套c3_16.java,//編程打印三角形數(shù)字圖案。 public class c3_16 public static void main(String args) for(int i=1;i=10) System.out.print(+i+” ); else System.out.print(+i+“ ); System.out.println( ); //外層for循環(huán)結(jié)束 ,1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6
22、7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 10 10 10 10 10 10 10 10 10 10,,,public class c3_17 public static void main(String args) int n=1,m,s,k=0; while(n<=8) for(s=1,m=1;m<=n;m++) s=s*m; //計算n!,結(jié)果存于s中 k=k+s; //計算前n項階乘之和,結(jié)果存于k中 System.out.println(n+!=+s+ k=+k); n++;
23、 ,c3_17.java求解 (即1!+2!+3!++7!+8!),程序的運行結(jié)果如下: 1!=1 k=1 2!=2 k=3 3!=6 k=9 4!=24 k=33 5!=120 k=153 6!=720 k=873 7!=5040 k=5913 8!=40320 k=46233,3.3 break 和continue語句,break: 1)可獨立使用,如case中 用在switch語句中,其作用是強(qiáng)制退出switch結(jié)構(gòu),執(zhí)行switch結(jié)構(gòu)后的語句 2)退出本層循環(huán) 若有內(nèi)外環(huán),則只能跳出內(nèi)環(huán),到外環(huán) Continue 只用于循環(huán),結(jié)束本次循環(huán),開始下次循環(huán) 當(dāng)程序執(zhí)行到continue語句時就返回到循環(huán)的入口處,執(zhí)行下一次循環(huán),而使循環(huán)體內(nèi)寫在continue語句后的語句不執(zhí)行,//對01000以內(nèi)的不能被3整除的數(shù)求和,當(dāng)和超過100時,打印參與計算的數(shù)的個數(shù)及累加和。 public class sample public static void main(String args) int sum=0,i; for(i=0;i100) break; System.out.println(sum=+sum+ i=+(i-1)); //結(jié)果是sum=108 i=16,3.3.2 continue,,作業(yè),P58 1,3,6,7,9,10,12,
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024《增值稅法》全文學(xué)習(xí)解讀(規(guī)范增值稅的征收和繳納保護(hù)納稅人的合法權(quán)益)
- 2024《文物保護(hù)法》全文解讀學(xué)習(xí)(加強(qiáng)對文物的保護(hù)促進(jìn)科學(xué)研究工作)
- 銷售技巧培訓(xùn)課件:接近客戶的套路總結(jié)
- 20種成交的銷售話術(shù)和技巧
- 銷售技巧:接近客戶的8種套路
- 銷售套路總結(jié)
- 房產(chǎn)銷售中的常見問題及解決方法
- 銷售技巧:值得默念的成交話術(shù)
- 銷售資料:讓人舒服的35種說話方式
- 汽車銷售績效管理規(guī)范
- 銷售技巧培訓(xùn)課件:絕對成交的銷售話術(shù)
- 頂尖銷售技巧總結(jié)
- 銷售技巧:電話營銷十大定律
- 銷售逼單最好的二十三種技巧
- 銷售最常遇到的10大麻煩