ch03.程序流程控制_第1頁
ch03.程序流程控制_第2頁
ch03.程序流程控制_第3頁
ch03.程序流程控制_第4頁
ch03.程序流程控制_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程132Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程基本控制結(jié)構(gòu)基本控制結(jié)構(gòu) 計(jì)算機(jī)之所以成為當(dāng)代最重要的信息處理工具,就是因?yàn)樗杏洃?、能進(jìn)行邏輯判斷、計(jì)算速度快的特點(diǎn)。 計(jì)算機(jī)實(shí)現(xiàn)的所有功能都是在指令的指揮下進(jìn)行的,而指令的集合就是程序。

2、 結(jié)構(gòu)化程序設(shè)計(jì)的原則及三種基本結(jié)構(gòu) 原則:1自頂向下 2逐步求精 3模塊化 4限制使用goto語句 Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程基本控制結(jié)構(gòu)基本控制結(jié)構(gòu) 除了以上的原則,結(jié)構(gòu)化程序設(shè)計(jì)還有一個(gè)重要的規(guī)定,那就是只能使用“順序結(jié)構(gòu)”、“選擇結(jié)構(gòu)”和“循環(huán)結(jié)構(gòu)”這三種基本結(jié)構(gòu)來定義程序的流程。Lu Qiang, 2007Hefei University of Technology,School of Computer and

3、 Information Chapter3 程序控制流程程序控制流程基本控制結(jié)構(gòu)基本控制結(jié)構(gòu) 順序結(jié)構(gòu)就是按照指令的先后順序依次執(zhí)行。 為實(shí)現(xiàn)分支結(jié)構(gòu)程序設(shè)計(jì),JAVA語言提供了條件分支語句if和多重分支語句switch,根據(jù)它們所包含的邏輯表達(dá)式的值決定程序執(zhí)行的方向。 循環(huán)結(jié)構(gòu)的程序可以對反復(fù)執(zhí)行的程序段進(jìn)行精煉,用較少的語句執(zhí)行大量重復(fù)的工作。Java提供了for 、while和do-while三種循環(huán)語句Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控

4、制流程程序控制流程132Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程分支結(jié)構(gòu)分支結(jié)構(gòu) 分支結(jié)構(gòu),是在兩條或多條(兩條以上)執(zhí)行路徑中選擇一條執(zhí)行的控制結(jié)構(gòu). If語句格式1. if(條件表達(dá)式)2.語句組;3. 括號中的條件是邏輯表達(dá)式,其值為true執(zhí)行語句塊1,否則直接執(zhí)行if 語句的下一條語句?;ɡㄌ栔械亩鄠€(gè)語句被看成是一條復(fù)合語句Lu Qiang, 2007Hefei University of Technology,School

5、 of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程分支結(jié)構(gòu)分支結(jié)構(gòu)1./本程序從命令行輸入兩個(gè)數(shù)據(jù)與給定的值50進(jìn)行比較,2./ 若大于50則輸出結(jié)果3.package chapter3;4.public class example03_01 5. public static void main(String args) 6. int x,serial,y=0;7. /讀入命令行參數(shù)8.

6、 x=Integer.parseInt(args0);9. serial=Integer.parseInt(args1);10. if(x50)11. y=x*serial;12. System.out.println(y=+y); 13. 14. 程序運(yùn)行結(jié)果路徑 java example03_01 55 11Y=605Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Com

7、puter and Information Chapter3 程序控制流程程序控制流程分支結(jié)構(gòu)分支結(jié)構(gòu)1./與例03_02的區(qū)別是if語句后面有花括號 2.package chapter3;3. public class example03_02 4. public static void main(String args) 5. int x,serial,y; 6. x=Integer.parseInt(args0);7. serial=Integer.parseInt(args1);12. 13. Lu Qiang, 2007Hefei University of Technology,S

8、chool of Computer and Information Chapter3 程序控制流程程序控制流程If-then-elseIfelse 語句格式1.if (條件) 2. (語句塊1)3.4.Else 5. (語句塊2)6.條件?語句塊2語句塊1truefalse 括號中的條件是邏輯表達(dá)式,括號中的條件是邏輯表達(dá)式,其值為其值為true執(zhí)行語句塊執(zhí)行語句塊1其值為其值為false 執(zhí)行語句塊執(zhí)行語句塊2 兩種情況在完成各自的任務(wù)之后,于兩種情況在完成各自的任務(wù)之后,于if的下的下一條語句會合。一條語句會合。Lu Qiang, 2007Hefei University of Techn

9、ology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程例程例程 -求三個(gè)數(shù)中的最大者求三個(gè)數(shù)中的最大者 1./給出任意三個(gè)數(shù),通過使用if語句嵌套,將它們2./按從小到大排序3.package chapter3;4.import javax.swing.JOptionPane;5. public class example03_03 6. public static

10、void main(String args)7. String str;8. double x,y,z,t;9. str=JOptionPane.showInputDialog(請輸入第一個(gè)數(shù));10. x=Double.parseDouble(str);11. str=JOptionPane.showInputDialog(請輸入第二個(gè)數(shù));12. y=Double.parseDouble(str);13. str=JOptionPane.showInputDialog(請輸入第三個(gè)數(shù));14. z=Double.parseDouble(str);15. if (xy)16. t=x; x=

11、y; y=t;17. if (xz)18. t=x; x=z; z=t;19. 20. else20. if (yz)21. t=y; y=z; z=t;22. 23. else24. if (xz) 25. t=x;x=z;z=t;26. if (yz) 27. t=y;y=z;z=t;28. 29. 30. if (yz) 31. t=y;y=z;z=t;32. 33. System.out.println(最小值+x);34. System.out.println(中間值+y);35. System.out.println(最大值+z);36. System.exit(0);37. 38

12、. Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程Switch 語句語句1.Switch(表達(dá)式) 2. case 值1: 語句塊1;3. break;4. case 值2: 語句塊2;5. break;6. case 值3: 語句塊3;7. break;8. 9. case 值n:

13、 語句塊n;10. break;11. default:12. 語句塊n+1;13. 條件語句塊1語句塊3語句塊4語句塊2Case 1 case 2Case 3 case 41. Switch 語句中的表達(dá)式的數(shù)據(jù)類型可以語句中的表達(dá)式的數(shù)據(jù)類型可以是是byte、char、short、int類型,不允許類型,不允許浮點(diǎn)型和浮點(diǎn)型和long型。型。2. 根據(jù)表達(dá)式值與根據(jù)表達(dá)式值與case語句后面的匹配情況語句后面的匹配情況決定程序執(zhí)行的分支決定程序執(zhí)行的分支3. 每個(gè)每個(gè)case 語句都要有語句都要有break語句語句4. 不匹配的情況執(zhí)行不匹配的情況執(zhí)行 default 語句語句Lu Qia

14、ng, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程Switch 語句之例語句之例1./通過鍵盤輸入月份,輸出相應(yīng)月份的英文單詞2./注意月份是在命令行中給出的3.package chapter3;4.public class example03_04 5. public static void ma

15、in(String args) 6. int month;7. month=Short.parseShort(args0);8. switch(month)9. case 1: System.out.println(January); break;10. case 2: System.out.println(February); break;11. case 3: System.out.println(March); break;12. case 4: System.out.println(April); break;13. case 5: System.out.println(May); b

16、reak;14. case 6: System.out.println(June); break;15. case 7: System.out.println(July); break;16. case 8: System.out.println(August); break;17. case 9: System.out.println(September); break;18. case 10: System.out.println(October); break;19. case 11: System.out.println(Novenber); break;20. case 12: Sy

17、stem.out.println(December); break;21. default: System.out.println(Input Number Error!);break;22. 23. Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程132Lu Qiang, 2007H

18、efei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是程序中一種重要的基本結(jié)構(gòu),是指: 在一定的條件下反復(fù)執(zhí)行某段程序,被反復(fù)執(zhí)行的這段程序稱為“循環(huán)體”. Java中有三種語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu),分別是while,do-while和for語句.Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程while

19、語句語句 while語句的格式如下:1. while(條件表達(dá)式) 2.循環(huán)體語句;3. 在循環(huán)剛開始時(shí),會計(jì)算一次“條件表達(dá)式”的值。 當(dāng)條件為假時(shí),將不執(zhí)行循環(huán)體,直接跳轉(zhuǎn)到循環(huán)體外,執(zhí)行循環(huán)體外的后續(xù)語句; 當(dāng)條件為真時(shí),便執(zhí)行循環(huán)體。每執(zhí)行完一次循環(huán)體,都會重新計(jì)算一次條件表達(dá)式,當(dāng)條件為真時(shí),便繼續(xù)執(zhí)行循環(huán)體,直到條件為假才結(jié)束循環(huán)Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,Sch

20、ool of Computer and Information Chapter3 程序控制流程程序控制流程while語句之例語句之例1./WhileOp2./用while語句計(jì)算10的階乘3.package chapter3;4.public class example03_055. public static void main(String args)6. int n=10;7. long result=1;8. while(n=1)9. result*=n-;10. System.out.println(10!=+result);11. 12.Lu Qiang, 2007Hefei Un

21、iversity of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程do-while語句語句 do-while語句的格式如下:1. do 2. 循環(huán)體語句;3. while(條件表達(dá)式) do-while循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語句,然后再判斷條件是否為真,如果為真則繼續(xù)循環(huán)如果為假,則終止循環(huán)因此,do-while循環(huán)至少要執(zhí)行一次至少要執(zhí)行一次循環(huán)語句Lu Qiang, 2007Hefei University of Technology,School of Computer

22、and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程do-while語句之例語句之例1./DoWhileOp2./用do-while語句計(jì)算10的階乘3.package chapter3;4.public class example03_065. public static void main(String args)6. int n=10;7. long result=1;11. System.out.print

23、ln(10!=“ + result);12. 13.Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程for語句語句 for語句是三個(gè)循環(huán)語句中功能最強(qiáng),使用最廣泛的一個(gè)。for語句的格式如下:1. for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 2. 循環(huán)體語句;3. 表達(dá)式1一般是一個(gè)賦值語句,它用來給循環(huán)控制變量賦初值;表達(dá)式2是一個(gè)布爾類型的表達(dá)式,它決定什么時(shí)候退出循環(huán);表達(dá)式3一般用來修改循環(huán)變量,控制變量每循環(huán)一次后按什么方式變化。三個(gè)

24、部分之間用“;”分開Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程for語句語句 for語句的執(zhí)行過程:1. 在循環(huán)剛開始時(shí),先計(jì)算表達(dá)式1,在這個(gè)過程中,一般完成的是初始化循環(huán)變量或其它變量2. 根據(jù)表達(dá)式2的值來決定是否執(zhí)行循環(huán)體。表達(dá)式2是一個(gè)返回布爾值的表達(dá)式,若該值為假,將不執(zhí)行循環(huán)體,并退出循環(huán);若該值為真,將執(zhí)行循環(huán)體3. 執(zhí)行完一次循環(huán)體后,計(jì)算表達(dá)式3。在這個(gè)過程中一般會修改循環(huán)變量4. 轉(zhuǎn)入第(2)步繼續(xù)執(zhí)行Lu Qia

25、ng, 2007Hefei University of Technology,School of Computer and Information Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程for語句之例語句之例1./ForLoop2./用for語句計(jì)算10的階乘3.package chapter3;4.public class example03_07 5. public static void main(String args) 6

26、. int n;7. long result;8. for (n=10,result=1; n0; n-)9. result*=n;10. System.out.println(10!= +result);11. 12.Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程循環(huán)嵌套循環(huán)嵌套 循環(huán)嵌套是指在循環(huán)體中包含有循環(huán)語句的情況. 三種循環(huán)語句即可以自身進(jìn)行嵌套,也可以相互進(jìn)行嵌套構(gòu)成多重循環(huán). 多重循環(huán)自內(nèi)向外展開,即先執(zhí)行內(nèi)循環(huán),后執(zhí)行外循

27、環(huán)。多重循環(huán)不允許相互交叉.1. /分別輸出1!、2!、3!、.6! 以及它們的和2. public class example03_08 3. public static void main(String args) 4. long sum=0;5. for(int i=1;i=6;i+) 6. long m=1;7. for(int j=1;j=i;j+)8. m*=j;9. System.out.println(i+!=+m);10. sum+=m;11. 12. System.out.println(1!+2!+3!+.+6!= +sum);13. 14. Lu Qiang, 2007Hefei University of Technology,School of Computer and Information Chapter3 程序控制流程程序控制流程跳轉(zhuǎn)語句跳轉(zhuǎn)語句 跳轉(zhuǎn)語句用來實(shí)現(xiàn)循環(huán)執(zhí)行過程中的流程轉(zhuǎn)移。在switch語句中使用過的break語句就是

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論