




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 JAVA流程控制語(yǔ)句主講教師:主講教師:毛科亮毛科亮本章內(nèi)容語(yǔ)句概述 Java語(yǔ)言的語(yǔ)句分類 結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程分支語(yǔ)句 If語(yǔ)句 If-else語(yǔ)句 Switch語(yǔ)句循環(huán)語(yǔ)句 while循環(huán)語(yǔ)句 do-while語(yǔ)句 for語(yǔ)句轉(zhuǎn)移語(yǔ)句 break語(yǔ)句 continue語(yǔ)句 return語(yǔ)句常用的程序設(shè)計(jì)方法枚舉法、地推法、遞歸法 簡(jiǎn)單圖形的輸出 格式化的輸入與輸出從鍵盤輸入數(shù)據(jù)格式化的輸出語(yǔ)句的概念java程序的執(zhí)行遵循一定的流程,流程是程序執(zhí)行的順序。流程控制語(yǔ)句是控制程序中各語(yǔ)句執(zhí)行順序的語(yǔ)句,是程序中非常關(guān)鍵和基本的部分。流程控制語(yǔ)句可以把單個(gè)的語(yǔ)句組合成有意義的、
2、能夠完成一定功能的小邏輯塊。一、Java語(yǔ)句概述語(yǔ)句與結(jié)構(gòu)化程序設(shè)計(jì)v在算法語(yǔ)言中,數(shù)據(jù)類型描述數(shù)據(jù)的性質(zhì),表達(dá)式描述對(duì)數(shù)據(jù)的運(yùn)算,語(yǔ)句描述對(duì)數(shù)據(jù)的操作。v程序由一系列語(yǔ)句組成。vJava語(yǔ)言雖然是一種面向?qū)ο蟮挠?jì)算機(jī)語(yǔ)言,但在一個(gè)局部,例如方法內(nèi)、塊語(yǔ)句內(nèi)仍然需要面向過(guò)程的程序設(shè)計(jì)和方法。v作為面向過(guò)程程序設(shè)計(jì)精華的結(jié)構(gòu)化程序設(shè)計(jì)思想,仍然是面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基石。一、Java語(yǔ)句概述結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程:盡管現(xiàn)實(shí)世界的問(wèn)題是復(fù)雜的、千變?nèi)f化的,但與之相對(duì)應(yīng)的計(jì)算機(jī)算法流程,只有三種基本結(jié)構(gòu)-順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。每種結(jié)構(gòu)都是單入口、單出口;每一部分都會(huì)被執(zhí)行到;沒(méi)有死循
3、環(huán)。 A B P A B P 循環(huán)體真假假真Java語(yǔ)言提供支持結(jié)構(gòu)化程序設(shè)計(jì)的所有語(yǔ)言。一、Java語(yǔ)句概述 Java語(yǔ)言提供結(jié)構(gòu)化語(yǔ)句實(shí)現(xiàn)程序的流程控制。 表達(dá)式語(yǔ)句 順序結(jié)構(gòu) 空語(yǔ)句 復(fù)合語(yǔ)句 條件語(yǔ)句 選擇語(yǔ)句語(yǔ)句 開(kāi)關(guān) 語(yǔ)句 switch while 循環(huán)語(yǔ)句 do-while for break 轉(zhuǎn)移語(yǔ)句 continue return 一、Java語(yǔ)句概述一、Java語(yǔ)句概述v 在java語(yǔ)言中,語(yǔ)句以分號(hào)“;”為結(jié)束標(biāo)志。v特殊的是,塊語(yǔ)由其他語(yǔ)句組成,其本身不用分號(hào)結(jié)束。內(nèi)嵌有塊語(yǔ)句并以塊語(yǔ)句結(jié)尾的語(yǔ)句,也不需要用分號(hào)結(jié)尾。vava語(yǔ)句按性質(zhì)可分為:說(shuō)明性語(yǔ)句、操作性語(yǔ)句。v
4、Java語(yǔ)句按功能可分為: 空語(yǔ)句、標(biāo)號(hào)語(yǔ)句、聲明語(yǔ)句、表達(dá)式語(yǔ)句、分支語(yǔ)句、循 環(huán)語(yǔ)句、斷言語(yǔ)句、跳轉(zhuǎn)語(yǔ)句、同步語(yǔ)句、異常語(yǔ)句、塊語(yǔ) 句等。一、Java語(yǔ)句概述一、Java語(yǔ)句概述空語(yǔ)句: 僅包含一個(gè)分號(hào)。 例如:for(int i=1;i3) System .out .println (a3); System .out .print (ok!);上面的執(zhí)行結(jié)果是什么上面的執(zhí)行結(jié)果是什么?IF語(yǔ)句語(yǔ)句二、Java分支語(yǔ)句一、Java語(yǔ)句概述class Maxpublic double getMax(double a,double b)double max; max=a;if(maxb)max
5、=b;return max;public class Ex3_1public static void main(String args) Max obj=new Max();System.out.println(max=+obj.getMax(3.14,3.1415926);判斷兩個(gè)數(shù)的最大值格式:格式: if (表達(dá)件表達(dá)件) 語(yǔ)句語(yǔ)句1;else 語(yǔ)句語(yǔ)句2; 功能:首先計(jì)算表達(dá)式,若值為真,則執(zhí)行語(yǔ)句功能:首先計(jì)算表達(dá)式,若值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句否則執(zhí)行語(yǔ)句2。 IF-else語(yǔ)句語(yǔ)句二、Java分支語(yǔ)句一、Java語(yǔ)句概述import java.util.*; class
6、Leappublic boolean isLeap(int year)if(year%4=0)&(year%100!=0)|(year%400=0)return true;else return false; public class Ex3_2public static void main(String args)int year;System.out.println(輸入一個(gè)年份:);Scanner reader=new Scanner(System.in);year=reader.nextInt();Leap obj=new Leap();if(obj.isLeap(year)S
7、ystem.out.println(year+是閏年。);elseSystem.out.println(year+不是閏年。);閏年問(wèn)題if (條件條件1) /程序代碼程序代碼; else if ( 條件條件2) /程序代碼程序代碼; else if ( 條件條件3) /程序代碼程序代碼; 注意注意:只要任何一個(gè)條件成立只要任何一個(gè)條件成立.程序就不會(huì)對(duì)下一個(gè)條件進(jìn)行判斷和再執(zhí)行了。程序就不會(huì)對(duì)下一個(gè)條件進(jìn)行判斷和再執(zhí)行了。IF-else if 語(yǔ)句語(yǔ)句二、Java分支語(yǔ)句public class Ex3_3public static void main(String args)(new Le
8、tter().judgeLetter(); class Letterpublic void judgeLetter() char ch; ch=(char)(java.lang.Math.random()*128); if(ch=a&ch=A&ch=0&ch=9) System.out.println(ch+是數(shù)字!); else System.out.println(ch+是其他符號(hào)!); 檢查用random()方法產(chǎn)生的一個(gè)字符,判斷是否為英文大寫字母、小寫字母、數(shù)字或是其他符號(hào),并輸出相應(yīng)信息。IF嵌套語(yǔ)句嵌套語(yǔ)句if (條件條件1) if ( 條件條件2) /程
9、序代碼程序代碼; else /程序代碼程序代碼; else if ( 條件條件3) /程序代碼程序代碼; else /程序代碼程序代碼; .IF嵌套語(yǔ)句嵌套語(yǔ)句二、Java分支語(yǔ)句switch( 表達(dá)式 ) case 值1: 語(yǔ)句1; break; case 值2: 語(yǔ)句2; break; case 值3: 語(yǔ)句3; break; .case 值N: 語(yǔ)句N; break; default:語(yǔ)句N+1多分支語(yǔ)句多分支語(yǔ)句 switch二、Java分支語(yǔ)句二、Java分支語(yǔ)句功能:首先計(jì)算表達(dá)式的值,然后在switch語(yǔ)句中尋找與該表達(dá)式的值相匹配的case值。 表達(dá)式的返回值類型必須是這幾種類
10、型一 int , byte , char , short。 case子句中的值必須是常量,而且所有case子句中的值應(yīng)是不同的。 default子句是可選的。 break語(yǔ)句用來(lái)在執(zhí)行完一個(gè)case分支后,使程序跳出switch語(yǔ)句,即終止switch語(yǔ)句的執(zhí)行(在一些特殊情況下,多個(gè)不同的case值要執(zhí)行一組相同的操作這時(shí)可以不用break,不寫break時(shí)執(zhí)行自該case開(kāi)始到下一次找到break語(yǔ)句為止) 多分支語(yǔ)句多分支語(yǔ)句 switch二、Java分支語(yǔ)句二、Java分支語(yǔ)句import java.util.*;public class Ex3_4public static void
11、 main(String args)(new Grade().toGrade();class Gradepublic void toGrade() int score,m; Scanner reader=new Scanner(System.in); System.out.println(輸入成績(jī):); score=reader.nextInt(); if(score100) System.out.println(data error!); else m=score/10; switch(m) case 9: case 10: System.out.println(The grade is A
12、.);break; case 8: System.out.println(The grade is B.);break; case 7: System.out.println(The grade is C.);break; case 6: System.out.println(The grade is D.);break; default: System.out.println(The grade is E.);break; 輸入百分成績(jī),輸出成績(jī)等級(jí)。循環(huán)語(yǔ)句的作用是反復(fù)執(zhí)行一段代碼,直到滿循環(huán)語(yǔ)句的作用是反復(fù)執(zhí)行一段代碼,直到滿足終止循環(huán)的條件為止。足終止循環(huán)的條件為止。Java語(yǔ)言中提供
13、的循語(yǔ)言中提供的循環(huán)語(yǔ)句有:環(huán)語(yǔ)句有: while語(yǔ)句語(yǔ)句 do-while語(yǔ)句語(yǔ)句 for語(yǔ)句語(yǔ)句循環(huán)語(yǔ)句循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句While ( 條件條件 ) /循環(huán)體循環(huán)體 注意:注意:(1)此語(yǔ)句是先判斷條件,再確定是否執(zhí)行語(yǔ)句或程)此語(yǔ)句是先判斷條件,再確定是否執(zhí)行語(yǔ)句或程 序塊。序塊。(2)條件為)條件為true時(shí),執(zhí)行循環(huán)體的語(yǔ)句或程序塊。反時(shí),執(zhí)行循環(huán)體的語(yǔ)句或程序塊。反 之,不執(zhí)行循環(huán)體。之,不執(zhí)行循環(huán)體。(3)在循環(huán)體中要有改變條件的語(yǔ)句,否則會(huì)成為死)在循環(huán)體中要有改變條件的語(yǔ)句,否則會(huì)成為死 循環(huán)。循環(huán)。while語(yǔ)句語(yǔ)句三、Java循環(huán)語(yǔ)句表達(dá)式
14、值表達(dá)式值語(yǔ)語(yǔ) 句句結(jié)束結(jié)束While 語(yǔ)句語(yǔ)句do /循環(huán)體;循環(huán)體; while (條件條件) ;注意:注意:(1)此語(yǔ)句是先執(zhí)行一次循環(huán)體,再判斷條件。此語(yǔ)句是先執(zhí)行一次循環(huán)體,再判斷條件。(2)條件為條件為true時(shí),再次執(zhí)行時(shí),再次執(zhí)行 循環(huán)體的語(yǔ)句或程序塊。循環(huán)體的語(yǔ)句或程序塊。(3)在循環(huán)體中要有改變條件的語(yǔ)句在循環(huán)體中要有改變條件的語(yǔ)句,否則會(huì)成為死循環(huán)。否則會(huì)成為死循環(huán)。(4)do-while循環(huán)語(yǔ)句即是至少都要執(zhí)行一次的。循環(huán)語(yǔ)句即是至少都要執(zhí)行一次的。do-while語(yǔ)句語(yǔ)句三、Java循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句語(yǔ)語(yǔ) 句句表達(dá)式值表達(dá)式值結(jié)束結(jié)束do-While 語(yǔ)句語(yǔ)
15、句for (設(shè)定初始值設(shè)定初始值 ; 條件限定條件限定 ; 修改控制變量修改控制變量) /程序代碼;程序代碼; 不限定的循環(huán)(死循環(huán))不限定的循環(huán)(死循環(huán)) for ( ; ; ) /程序代碼;程序代碼; 多個(gè)變量進(jìn)行定義多個(gè)變量進(jìn)行定義 for ( int i=0,j=100 ; ij ; i+ , j- ) /程序代碼;程序代碼; For語(yǔ)句語(yǔ)句三、Java循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句for (int i=0 ; i100 ; i+) for (int j=0 ; ji; j+) /程序塊;程序塊; 注意:在我們的實(shí)際開(kāi)發(fā)過(guò)程中,注意:在我們的實(shí)際開(kāi)發(fā)過(guò)程中,for循環(huán)語(yǔ)句使用的循環(huán)語(yǔ)句使
16、用的比較多比較多,重點(diǎn)把握!重點(diǎn)把握!For循環(huán)嵌套循環(huán)嵌套三、Java循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句/ 輸出1100內(nèi)前5個(gè)可以被3整除的數(shù)。public class Ex3_5 public static void main(String args) int num = 0, i = 1; while (i = 100) if (i % 3 = 0) System.out.print(i + ); num+; if (num = 5) break; i+; /輸出101200內(nèi)的質(zhì)數(shù),public class Ex3_6 public static void main(String args
17、) for (int i=101; i200; i+=2) boolean f = true; for (int j = 2; j i; j+) if (i % j = 0) f = false; break; if (!f) continue; System.out.print( + i); 三、Java循環(huán)語(yǔ)句三、Java循環(huán)語(yǔ)句JAVA中的跳轉(zhuǎn)語(yǔ)句有:中的跳轉(zhuǎn)語(yǔ)句有: break語(yǔ)句語(yǔ)句 continue語(yǔ)句語(yǔ)句 返回語(yǔ)句返回語(yǔ)句return跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句break語(yǔ)句用于終止某個(gè)語(yǔ)句塊或循環(huán)體的執(zhí)行語(yǔ)句用于終止某個(gè)語(yǔ)句塊或循環(huán)體的執(zhí)行 break; break語(yǔ)句
18、出現(xiàn)在多層嵌套的語(yǔ)句塊中時(shí),可以通過(guò)語(yǔ)句出現(xiàn)在多層嵌套的語(yǔ)句塊中時(shí),可以通過(guò)標(biāo)簽指明要終止的是哪一層語(yǔ)句塊標(biāo)簽指明要終止的是哪一層語(yǔ)句塊 label1: label2: label3: break label2; break語(yǔ)句語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句break語(yǔ)句示例語(yǔ)句示例public class Ex3_7 public static void main( String args ) for( int i=1; i= 10; i+ ) if( i = 5 ) break; System.out.println( i= + i ); System.out.println
19、( Done ); 四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句外層跳轉(zhuǎn)外層跳轉(zhuǎn):break語(yǔ)句語(yǔ)句在在switch語(yǔ)中,語(yǔ)中,break語(yǔ)句用來(lái)終止語(yǔ)句用來(lái)終止switch語(yǔ)句的執(zhí)行。語(yǔ)句的執(zhí)行。在在Java中,可以為每個(gè)代碼塊加一個(gè)標(biāo)號(hào),一個(gè)代碼塊通常是用大中,可以為每個(gè)代碼塊加一個(gè)標(biāo)號(hào),一個(gè)代碼塊通常是用大括號(hào)括號(hào)括起來(lái)的一段代碼。加標(biāo)號(hào)的格式如下:括起來(lái)的一段代碼。加標(biāo)號(hào)的格式如下:BlockLabel: codeBlock break語(yǔ)句的第二種使用情況就是跳出它所指定的塊,并從緊跟語(yǔ)句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語(yǔ)句處執(zhí)行。例如:該塊的第一條語(yǔ)句處執(zhí)行。例
20、如:break BlockLabel;break語(yǔ)句語(yǔ)句a: /標(biāo)記代碼塊標(biāo)記代碼塊ab: /標(biāo)記代碼塊標(biāo)記代碼塊bc: /標(biāo)記代碼塊標(biāo)記代碼塊cbreak b; /此處的語(yǔ)句塊不被執(zhí)行此處的語(yǔ)句塊不被執(zhí)行 /此處的語(yǔ)句塊不被執(zhí)行此處的語(yǔ)句塊不被執(zhí)行 /從此處開(kāi)始執(zhí)行從此處開(kāi)始執(zhí)行 四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句lbreak 語(yǔ)句用于終止某個(gè)語(yǔ)句塊的執(zhí)行。用在循環(huán)語(yǔ)句體中,可以強(qiáng)行退出循環(huán);例如:public class Ex3_8 public static void main(String args) int stop = 4; for (int i = 1; i = 10; i
21、+) /當(dāng)i等于stop時(shí),退出循環(huán) if (i = stop) break; System.out.println( i= + i); i = 1i = 2i = 3lcontinue 語(yǔ)句用在循環(huán)語(yǔ)句體中,用于終止某次循環(huán)過(guò)程,跳過(guò)循環(huán)體中 continue 語(yǔ)句下面未執(zhí)行的循環(huán),開(kāi)始下一次循環(huán)過(guò)程;例如:public class Ex3_9 public static void main(String args) int skip = 4; for (int i = 1; i = 5; i+) /當(dāng)i等于skip時(shí),跳過(guò)當(dāng)次循環(huán) if (i = skip) continue; Syste
22、m.out.println(i = + i); i = 1i = 2i = 3i = 52.5.4四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句continue語(yǔ)句語(yǔ)句continue語(yǔ)句用于跳過(guò)某個(gè)循環(huán)語(yǔ)句塊的一次執(zhí)行語(yǔ)句用于跳過(guò)某個(gè)循環(huán)語(yǔ)句塊的一次執(zhí)行 continue語(yǔ)句出現(xiàn)在多層嵌套的循環(huán)語(yǔ)句體中時(shí),可語(yǔ)句出現(xiàn)在多層嵌套的循環(huán)語(yǔ)句體中時(shí),可以通過(guò)標(biāo)簽指明要跳過(guò)的是哪一層循環(huán)。以通過(guò)標(biāo)簽指明要跳過(guò)的是哪一層循環(huán)。 四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句continue語(yǔ)句實(shí)例語(yǔ)句實(shí)例public class Ex3_10 public static void main( String arg
23、s ) for( int i=1; i= 10; i+ ) if( i = 5 | i = 7 ) continue; System.out.println( i= + i ); System.out.println( Done ); 四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句外層跳轉(zhuǎn)外層跳轉(zhuǎn):continue語(yǔ)句語(yǔ)句 continue語(yǔ)句用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)語(yǔ)句用來(lái)結(jié)束本次循環(huán),跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ) 句,接著進(jìn)行終止條件的判斷,句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)以決定是否繼續(xù)循環(huán)。對(duì)于。對(duì)于for語(yǔ)語(yǔ) 句在進(jìn)行終止條件的判斷前,還要先執(zhí)行迭代語(yǔ)句。
24、也可以用句在進(jìn)行終止條件的判斷前,還要先執(zhí)行迭代語(yǔ)句。也可以用continue 跳轉(zhuǎn)到括號(hào)指明的外層循環(huán)中跳轉(zhuǎn)到括號(hào)指明的外層循環(huán)中 格式為格式為 continue outerLable;例如例如 outer: for( int i=0; i10; i+ ) /外層循環(huán)外層循環(huán)inner: for( int j=0; j10; j+ ) /內(nèi)層循環(huán)內(nèi)層循環(huán)if( ij )continue outer; 四、Java跳轉(zhuǎn)語(yǔ)句四、Java跳轉(zhuǎn)語(yǔ)句返回語(yǔ)句返回語(yǔ)句returnreturn語(yǔ)句從當(dāng)前方法中退出,返回到調(diào)用該方法的語(yǔ)句語(yǔ)句從當(dāng)前方法中退出,返回到調(diào)用該方法的語(yǔ)句處,并從緊跟該語(yǔ)句的下一條
25、語(yǔ)句繼續(xù)程序的執(zhí)行。返處,并從緊跟該語(yǔ)句的下一條語(yǔ)句繼續(xù)程序的執(zhí)行。返回語(yǔ)句有兩種格式:回語(yǔ)句有兩種格式:return expression;return;return語(yǔ)句通常用在一個(gè)方法體的最后語(yǔ)句通常用在一個(gè)方法體的最后,否則會(huì)產(chǎn)生編譯否則會(huì)產(chǎn)生編譯錯(cuò)誤錯(cuò)誤,除非用在除非用在if-else語(yǔ)句中。語(yǔ)句中。四、Java跳轉(zhuǎn)語(yǔ)句1、枚舉法(窮舉法)就是把所有可能的情況一一測(cè)試,篩選出符合條件的各種結(jié)果進(jìn)行輸出。五、常用的程序設(shè)計(jì)方法38常用算法1、枚舉法(窮舉法)“笨人之法”: 把所有可能的情況一一測(cè)試,篩選出符合條件的各種結(jié)果進(jìn)行輸出?!纠弧堪僭I百雞:用一百元錢買一百只雞。已知公雞5元/
26、只,母雞3元/只,小雞1元/3只。分析: 這是個(gè)不定方程三元一次方程組問(wèn)題(三個(gè)變量,兩個(gè)方程) xyz=100 5x3yz/3=100 設(shè)公雞為x只,母雞為y只,小雞為z只。五、常用的程序設(shè)計(jì)方法class Ex3_11 public static void main(String arg) int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) z=100-x-y; if (5*x+3*y+z/3.0=100) System.out.println(cocks=+x+, +hens=+y+,+chickens=+z); 結(jié)果: cocks =0,
27、hens =25, chickens =75 cocks =4, hens =18, chickens =78 cocks =8, hens =11, chickens =81 cocks =12, hens =4, chickens =84五、常用的程序設(shè)計(jì)方法另一種計(jì)算方法:class HundredYuanChicken public void printChicken()int x,y,z;for(x=0;x=100;x+)for(y=0;y=100;y+) for(z=0;z=100;z+) if(x+y+z=100&5*x+3*y+z/3.0=100) System.out
28、.println(公雞=+x+母雞=+y+小雞=+z); public class Test303 public static void main(String args) (new HundredYuanChicken().printChicken(); 五、常用的程序設(shè)計(jì)方法412、遞推法(迭代法)基本思想:不斷由已知值推出新值,直到求得解為止。迭代初值、迭代公式和迭代終止條件是迭代法的三要素例:斐波納契數(shù)列。前兩個(gè)數(shù)都是1,第三個(gè)數(shù)是前兩個(gè)數(shù)之和,以后的每個(gè)數(shù)都是其前兩個(gè)數(shù)之和。 各數(shù)之間的一種遞推關(guān)系,即: Fn = Fn-1 + Fn-2,F(xiàn)1 = F2 =1本題的三要素是: 迭代初
29、值:x=1, y=1 迭代公式:z=y+x 終止條件:共計(jì)算n-2次五、常用的程序設(shè)計(jì)方法42public class Ex3_12 static int fib(int n) int first = 1; int second = 1; int sum = first + second; int i = 2; while(+i n) first = second; second = sum; sum = first + second; return sum; public static void main(String args) System.out.println(f20= + fib(
30、20); 程序的運(yùn)行結(jié)果如下: java FibIterative f20=6765五、常用的程序設(shè)計(jì)方法【累加型】類型諸如 + 求其前n項(xiàng)之和的編程題。累加型算法累加型算法 若設(shè)若設(shè)i為循環(huán)變量,為循環(huán)變量,s為前為前n項(xiàng)累加之和,則程序的項(xiàng)累加之和,則程序的基本結(jié)構(gòu)為:基本結(jié)構(gòu)為: s=0; for( i=1 ;i=n ;i+ ) s=s+;五、常用的程序設(shè)計(jì)方法44編程求11/2+1/31/4+1/5 +1/991/100累加型算法累加型算法程序基本結(jié)構(gòu)為:程序基本結(jié)構(gòu)為: s=0; for( i=1;i=n;i+ ) s=s+;運(yùn)行結(jié)果:Sum=0.6881719 五、常用的程序設(shè)計(jì)方
31、法451) class Ex3_132) static float mySum(int n) 3) float k = 1f;4) float sum = 0.0f;5) for(int i=1;i=n;i+)6) 7) sum=sum+k/i;8) k = -k;9) 10) return sum; 11) 12) public static void main(String args) 13) System.out.println(Sum100= + mySum(100); 14) 五、常用的程序設(shè)計(jì)方法46【階乘型】類型諸如 求其前n項(xiàng)之積的編程題。階乘型算法階乘型算法 若設(shè)若設(shè)i為循環(huán)
32、變量,為循環(huán)變量,s為前為前n項(xiàng)相乘之積,則程序項(xiàng)相乘之積,則程序的基本結(jié)構(gòu)為:的基本結(jié)構(gòu)為: s=1; for( i=1 ;i=n ;i+ ) s=s*;五、常用的程序設(shè)計(jì)方法47class Ex3_14 static int myFac(int n) int fac = 1; for(int i=1;i=n;i+) fac=fac*i; return fac; public static void main(String args) System.out.println(Fac10= + myFac(5); n!運(yùn)行結(jié)果:Fac10=3628800.0五、常用的程序設(shè)計(jì)方法48編程求n!
33、=1!+2!+3!+n! (n由鍵盤輸入)在同一個(gè)循環(huán)中 先階乘,后累加五、常用的程序設(shè)計(jì)方法491) class Ex3_15 2) static int method(int n) 3) int s=0,p=1;4) for(int i=1; i=n; i+) 5) p = p * i; /i!6) s = s + p;7) 8) return s;9) 10) public static void main(String args) 11) int r = method(5);12) System.out.println(r= + r);13) 14) 運(yùn)行結(jié)果:r=153五、常用的程序
34、設(shè)計(jì)方法50a+aa+aaa+aa=?import java.io.*;class Ex3_16 public static void main(String args)throws IOException BufferedReader br=new BufferedReader(new InputStreamReader(System.in); System.out.print(請(qǐng)輸入一個(gè)長(zhǎng)度請(qǐng)輸入一個(gè)長(zhǎng)度n:); String str=br.readLine(); /轉(zhuǎn)換字符串為整型數(shù)轉(zhuǎn)換字符串為整型數(shù) int n=Integer.parseInt(str);五、常用的程序設(shè)計(jì)方法51 S
35、ystem.out.print(請(qǐng)輸入一個(gè)整數(shù)a:);str=br.readLine(); /輸入字符存入字符串int a=Integer.parseInt(str);/轉(zhuǎn)換字符串為整型數(shù)據(jù)int i=1,sn=0,tn=0;while(i 2 )public class Ex3_18 public static void main(String arg) System.out.println(f(40); public static int f(int n) if (n = 1 | n = 2) return 1; else return f(n - 1) + f(n - 2); 五、常用的
36、程序設(shè)計(jì)方法mainf5f4f3f2f1f2f3f2f1public static int f(int n) if (n = 1 | n = 2) return 1; else return f(n - 1) + f(n - 2); 五、常用的程序設(shè)計(jì)方法564、簡(jiǎn)單圖形的輸出編程顯示以下圖形(共N 行,N 由鍵盤輸入)。 * * * * * * * * * * * * * * * * * * * * * * * * *此類題目分析的要點(diǎn)是:通過(guò)分析,找出每行空格、* 與行號(hào)i、列號(hào)j及總行數(shù)N的關(guān)系。其循環(huán)結(jié)構(gòu)可用右圖表示。分析:(設(shè)N=5)第1行 4個(gè)空格=5-1 1個(gè)“*”=2*行號(hào)-1
37、第2行 3個(gè)空格=5-2 3個(gè)“*”=2*行號(hào)-1第3行 2個(gè)空格=5-3 5個(gè)“*”=2*行號(hào)-1第4行 1個(gè)空格=5-4 7個(gè)“*”=2*行號(hào)-1第5行 0個(gè)空格=5-5 9個(gè)“*”=2*行號(hào)-1由此歸納出:第i行的空格數(shù)N-i個(gè); 第i行的“*”數(shù)是2i-1個(gè)。 五、常用的程序設(shè)計(jì)方法57編程顯示以下圖形(共N 行,N 由鍵盤輸入)。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *算法:分成兩部分完成:N=9行 N1=(N+1)/2=5 N2=N-N1=4五、常用的程序設(shè)計(jì)
38、方法58public class Ex3_19public static void main(String args) int n=9; int middle=(n+1)/2, spaceNum; for(int i=1;i=middle;i+) /打印星號(hào)前的空格 spaceNum=middle-i; for(int j=1;j=spaceNum;j+) System.out.print( ); /打印星號(hào) for(int k=1;k=2*i-1;k+) System.out.print(*); System.out.println(); middle=(n+1)/2; for(int i=
39、1;i=middle;i+) /打印星號(hào)前的空格 spaceNum=middle-i; for(int j=1;j=i;j+) System.out.print( ); /打印星號(hào) for(int k=1;k=2*spaceNum-1;k+) System.out.print(*); System.out.println();五、常用的程序設(shè)計(jì)方法59/第一部分,輸入*個(gè)數(shù)import java.io.*;public class Ex3_20public static void main(String args) throws IOException int n;BufferedReader
40、 br =new BufferedReader(new InputStreamReader(System.in);do System.out.print(input a odd number:); String str=br.readLine(); n=Integer.parseInt(str); while(n%2=0); /條件值為false時(shí)結(jié)束循環(huán)五、常用的程序設(shè)計(jì)方法60/第二部分,打印上半部分 int middle=(n+1)/2, spaceNum;for(int i=1;i=middle;i+) /打印星號(hào)前的空格 spaceNum=middle-i; for(int j=1;
41、j=spaceNum;j+) System.out.print( ); /打印星號(hào) for(int k=1;k=2*i-1;k+) System.out.print(*); System.out.println(); 五、常用的程序設(shè)計(jì)方法61/第二部分,打印下半部分 for(int i=1;i=n-middle;i+) /打印星號(hào)前的空格 spaceNum=i; for(int j=1;j=spaceNum;j+) System.out.print( ); /打印星號(hào) for(int k=1;k=2*(middle-i)-1;k+) System.out.print(*); System.out.println(); 五、常用的程序設(shè)計(jì)方法/第二部分另一種實(shí)現(xiàn)方法 int middle=(n+1)/2,spaceNum, maxLetterNum=n,letterNum; for(int i=1;i=n;i+) /打印星號(hào)前的空格spaceNum=Math.abs(middle-i);for(int j=1;j=spaceNum;j+) System.out.print( ); /打印星號(hào)letterNum=maxLetterNum-2*spaceNum;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 草原割草在整合教育資源中的作用考核試卷
- 安全文明施工方案誰(shuí)編寫
- 航天器在軌燃料補(bǔ)給技術(shù)考核試卷
- 環(huán)境工程教學(xué)課件
- 再生橡膠在寵物用品行業(yè)的應(yīng)用考核試卷
- 2025年無(wú)縫管熱連軋機(jī)合作協(xié)議書
- 火工品生產(chǎn)過(guò)程中的安全生產(chǎn)措施考核試卷
- 藤材種植與可持續(xù)農(nóng)業(yè)考核試卷
- 盾構(gòu)機(jī)施工中的隧道工程地質(zhì)調(diào)查考核試卷
- 選擇與誰(shuí)同行決定你的職場(chǎng)高度
- 知道網(wǎng)課智慧《自動(dòng)化生產(chǎn)線實(shí)訓(xùn)》測(cè)試答案
- 智慧管網(wǎng)項(xiàng)目建設(shè)方案
- 山東省煙臺(tái)市牟平區(qū)(五四制)2023-2024學(xué)年九年級(jí)下學(xué)期期中考試數(shù)學(xué)試題
- 2024年注冊(cè)安全工程師考試題庫(kù)及參考答案(完整版)
- SYT 0440-2021 工業(yè)燃?xì)廨啓C(jī)安裝技術(shù)規(guī)范-PDF解密
- DL-T 572-2021電力變壓器運(yùn)行規(guī)程-PDF解密
- 《17 他們那時(shí)候多有趣啊》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)及反思
- 2023屆高三物理一輪復(fù)習(xí)89熱學(xué)中的變質(zhì)量問(wèn)題(解析版)
- 人教版 美術(shù) 三年級(jí)下冊(cè)全冊(cè)表格式教案教學(xué)設(shè)計(jì)
- 2021年全國(guó)高中數(shù)學(xué)聯(lián)賽浙江賽區(qū)初賽試題
- 公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn) 第二冊(cè)機(jī)電工程 JTG 2182-2020
評(píng)論
0/150
提交評(píng)論