Java程序設計實訓教程課件項目四 基本控制結構_第1頁
Java程序設計實訓教程課件項目四 基本控制結構_第2頁
Java程序設計實訓教程課件項目四 基本控制結構_第3頁
Java程序設計實訓教程課件項目四 基本控制結構_第4頁
Java程序設計實訓教程課件項目四 基本控制結構_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目4基本控制結構任務一掌握Java分支結構任務二掌握Java循環(huán)結構項目實戰(zhàn)一分支結構編程項目實戰(zhàn)二循環(huán)結構編程4.1任務一掌握Java分支結構

4.1.1if語句1.簡單的條件語句語句的格式如下:if(表達式){

語句;}圖4-1簡單的條件語句說明:(1)放在if之后的括號里的只能是一個邏輯表達式,即這個表達式的返回值只能是true或false。(2)如果表達式的值為true,則執(zhí)行語句;如果表達式的值為false,則什么也不執(zhí)行。(3)花括號括起來的語句塊可以只有一行語句,也可以由多行代碼構成。一個語句塊通常被當成一個整體來執(zhí)行。如果語句塊只有一行語句時,則可以省略花括號,因為單行語句本身就是一個整體,無須花括號來把它們定義成一個整體?!纠?-1】通過命令行輸入一個人的年齡,判斷其是否為未成年人。importjava.io.*;publicclassTestAge{ publicstaticvoidmain(String[]args)throwsIOException

{

InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in);

intage;System.out.println("請輸入一個年齡,回車");

age=Integer.parseInt(bin.readLine());

if(age<18)

System.out.println("這是一個未成年人!");

}

}【例4-2】已知三個數(shù),要求將它們按照由小到大的順序輸出。publicclassNumberSort{publicstaticvoidmain(String[]args){inta=5,b=7,c=3,t;

if(a>b)

{t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;} if(b>c){t=b;b=c;c=t;}

System.out.println("a="+a+",b="+b+",c="+c);

}

2.帶else的條件語句語句的格式如下:if(表達式){

語句1;}else{語句2;}圖4-2帶else的條件語句說明:(1)放在if之后的括號里的只能是一個邏輯表達式,即這個表達式的返回值只能是true或false。(2)如果if表達式的值為true,則執(zhí)行語句1;如果表達式的值為false,則執(zhí)行語句2?!纠?-3】判斷一個年份是否為閏年,是則顯示,否則提示某年不是閏年。(閏年的判斷規(guī)則:如果某年能被4整除且不能被100整除;或者某年能被400整除)importjava.io.*;publicclassTestYear{ publicstaticvoidmain(String[]args)throwsIOException

{

InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in);intyear;System.out.println("請輸入一個年份,回車");year=Integer.parseInt(bin.readLine());

if(year%4==0&&(year%100!=0)||(year%400==0))

System.out.println(year+"是閏年!");elseSystem.out.println(year+"不是閏年!");}}【例4-4】通過命令輸入兩個數(shù),把它們由大到小輸出。importjava.io.*;publicclassTestNum{publicstaticvoidmain(String[]args)throwsIOException

{InputStreamReaderin=newInputStreamReader(System.in);BufferedReaderbin=newBufferedReader(in);

floatx,y;

System.out.println("請輸入第一個數(shù)");x=Float.parseFloat(bin.readLine());System.out.println("請輸入第二個數(shù)");y=Float.parseFloat(bin.readLine());

if(x>y)

System.out.println(x+","+y);elseSystem.out.println(y+","+x);

}

}3.if語句的嵌套

在if語句中又包含一個或多個if語句稱為if語句的嵌套。語句的格式如下:if(表達式1){ 語句1;}elseif(表達式2){ 語句2;}…elseif(表達式m){ 語句m;}else{ 語句n;}【例4-5】根據(jù)百分制分數(shù)判定成績等級,標準如下:A:90~100分B:80~89分C:70~79分D:60~69分E:60分以下publicclassTestGrade{publicstaticvoidmain(String[]args){intscore=89;charch;if(score>=90)ch='A';

elseif(score>=80)ch='B';elseif(score>=70)ch='C';elseif(score>=60)ch='D'; elsech='E';System.out.println("等級"+ch);}}

Java提供了多分支選擇語——switch語句。使用switch可以測試多個不同的條件并做出相對的響應。switch(表達式){case常量1:語句序列1; [break;]case常量2:語句序列2; [break;]…case常量n:語句序列n; [break;][default:語句序列n+1;]}4.1.2switch語句說明:(1)表達式的數(shù)據(jù)類型可以是byte、short、char和int類型,不允許是浮點數(shù)類型和long類型。break語句和default子句是可選項。(2)switch語句先計算表達式的值,然后依次匹配case子句后的常量1、常量2……常量n等值,如果遇到匹配的值即執(zhí)行對應的語句序列,直到遇到break語句為止;如果case子句中沒有break語句,則程序繼續(xù)匹配剩余case子句后的值。(3)如果沒有一個常量值與表達式的值相等,則執(zhí)行default子句中的語句序列;如果沒有default子句,switch語句不執(zhí)行任何操作。【例4-6】根據(jù)不同的運算符號(+、-、*、/),對兩個數(shù)執(zhí)行相應的運算并輸出結果。importjava.io.*;publicclassTestSign{publicstaticvoidmain(String[]args)throwsIOException{floata=10f,b=5f,c=0.0f;charsign;System.out.println("加法(+),減法(-),乘法(*),除法(/),請選擇運算符");sign=(char)System.in.read(); switch(sign) {case'+':c=a+b;break; case'-':c=a-b;break; case'*':c=a*b;break; case'/':c=a/b;break; default:{ System.out.println("輸入符號錯誤!"); c=-1.0f; } } if(c!=-1.0f) System.out.println("a="+a+"b="+b+"c="+c);}}【例4-7】根據(jù)用戶輸入1~7之間的一個整數(shù),輸出相對應星期的英文單詞。importjava.io.*;publicclassTestWeek{publicstaticvoidmain(String[]args)throwsIOException{ InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in); shortday;System.out.println("請輸入1~7之間的一個整數(shù)");

day=Short.parseShort(bin.readLine()); switch(day) {case1:System.out.println("Monday");break; case2:System.out.println("Tuesday");break;case3:System.out.println("Wednesday");break;case4:System.out.println("Thursday");break;case5:System.out.println("Friday");break;case6:System.out.println("Saturday");break;case7:System.out.println("Sunday");break; default:System.out.println("請輸入1~7之間的一個數(shù)!"); }}}4.2任務二掌握Java循環(huán)結構

循環(huán)結構是程序中一種重要的基本結構,是指在一定的條件下重復執(zhí)行某段程序,被重復執(zhí)行的這段程序稱為“循環(huán)體”。Java還提供了break語句和continue語句,可以控制循環(huán)語句的執(zhí)行情況。1.break語句2.continue語句continue語句的功能和break語句有點類似,區(qū)別是continue語句只是終止本次循環(huán),回到循環(huán)條件處,判斷是否執(zhí)行下一次循環(huán)。而break語句則是完全終止循環(huán)。可以理解為continue語句的作用是略過當次循環(huán)中剩下的語句,重新開始新的循環(huán)。

4.2.1for語句語句的格式如下:for(表達式1;表達式2;表達式3){ 循環(huán)體;}圖4-4for語句流程圖說明:(1)表達式1一般是一個或多個(用逗號隔開)賦值語句,它用來給循環(huán)控制變量賦初值;表達式2是一個布爾類型的表達式,它決定什么時候退出循環(huán);表達式3一般用來修改循環(huán)變量,控制變量每循環(huán)一次后按什么方式變化。這三個部分之間用“;”分開。(2)for語句的執(zhí)行過程:在循環(huán)剛開始時,先計算表達式1,在這個過程中,一般完成的是初始化循環(huán)變量或其它變量。根據(jù)表達式2的值來決定是否執(zhí)行循環(huán)體。表達式2是一個返回布爾值的表達式,若該值為假,將不執(zhí)行循環(huán)體,并退出循環(huán);若該值為真,將執(zhí)行循環(huán)體。執(zhí)行完一次循環(huán)體后,計算表達式3。每次執(zhí)行循環(huán)體之后都要重新驗證表達式2的值,直到表達式2的值為false時退出循環(huán)。(3)循環(huán)體可以是一條簡單語句,此時可以省略循環(huán)體外的花括號。循環(huán)體也可以是一組語句塊,此時不可以省略循環(huán)體外的花括號?!纠?-8】輸出1~9之間的所有整數(shù)及其平方值。publicclassTestNum1{publicstaticvoidmain(String[]args){ for(inti=0,j=0;i<=9;i++,j=i*i) { System.out.println("i="+i);System.out.println("j="+j);}}}【例4-9】計算1~100之間的偶數(shù)和。publicclassTestNum2{publicstaticvoidmain(String[]args){intn,s=0; for(n=0;n<=100;n=n+2) s=s+n; System.out.println("2+4+…+100="+s);}}4.2.2do—while語句語句的格式如下:do{ 循環(huán)體;}while(表達式);圖4-5do-while語句流程圖說明:(1)放在while之后的括號里的只能是一個布爾表達式。布爾表達式表示循環(huán)執(zhí)行的條件。(2)循環(huán)體可以是一條語句,也可以是復合的語句序列。如果只有單個語句需要重復,花括號可以省略。(3)do—while語句的執(zhí)行過程是:先執(zhí)行一次循環(huán)體再判斷布爾表達式的值,當布爾表達式的值為true時重復執(zhí)行循環(huán)體中的語句,每次執(zhí)行循環(huán)體之后都要重新驗證表達式的值,直到表達式的值為false時退出循環(huán)。一定要有使布爾表達式的值取假的時候,否則會出現(xiàn)死循環(huán)。(4)特點:先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立,do—while語句總是執(zhí)行它的循環(huán)體至少一次。【例4-12】計算1~100之間的整數(shù)和。publicclassTestNum3{publicstaticvoidmain(Stringargs[]){intn=1,s=0;do{s=s+n;}while(++n<=100); System.out.println("1~100之間的整數(shù)和為:"+s);}

}4.2.3while語句語句的格式如下:while(表達式){

循環(huán)體;}圖4-6while語句流程圖說明:(1)放在while之后的括號里的只能是一個布爾表達式。布爾表達式表示循環(huán)執(zhí)行的條件。(2)循環(huán)體可以是一條語句,也可以是復合的語句序列。如果只有單個語句需要重復,花括號可以省略。(3)while循環(huán)語句的執(zhí)行流程:先判斷while語句中的布爾表達式的值;如果是false,則不執(zhí)行循環(huán)體,直接執(zhí)行后面的程序;如果是true,則執(zhí)行循環(huán)體語句,然后重新驗證表達式的值,直到表達式的值為假時退出循環(huán)。(4)while語句的特點是先判斷表達式值為真后,再執(zhí)行循環(huán)體。如果while循環(huán)一開始布爾表達式的值就是假的,那么循環(huán)體就根本不被執(zhí)行?!纠?-14】編程輸出100~400之間能同時被3和7整除的數(shù)。publicclassTestNum5{publicstaticvoidmain(Stringargs[]){intn=100;while(n<=400){if(n%3==0&&(n%7==0))System.out.print(n+"");n++;}}}4.2.4嵌套循環(huán)如果在循環(huán)語句的循環(huán)體中又包含循環(huán)語句,就形成多重循環(huán)結構,稱為嵌套循環(huán)。嵌套循環(huán)既可以是for循環(huán)嵌套while循環(huán),也可以是while循環(huán)嵌套do—while循環(huán)……即各種類型的循環(huán)都可以作為外層循環(huán),各種類型的循環(huán)也可以作為內層循環(huán)。當程序遇到嵌套循環(huán)時,如果外層循環(huán)的循環(huán)條件允許,則開始執(zhí)行外層循環(huán)的循環(huán)體,而內層循環(huán)將被外層循環(huán)的循環(huán)體來執(zhí)行——只是內層循環(huán)需要反復執(zhí)行自己的循環(huán)體而已。當內層循環(huán)執(zhí)行結束、且外層循環(huán)的循環(huán)體執(zhí)行結束,則再次計算外層循環(huán)的循環(huán)條件,決定是否再次開始執(zhí)行外層循環(huán)的循環(huán)體。根據(jù)上面分析,假設外層循環(huán)的循環(huán)次數(shù)為i次,內層循環(huán)的循環(huán)次數(shù)為j次,那么內層循環(huán)的循環(huán)體實際上需要執(zhí)行i*j次。嵌套循環(huán)不僅可以是兩層嵌套,還可以是三層嵌套,四層嵌套……不論循環(huán)如何嵌套,我們都可以把內層循環(huán)當成外層循環(huán)的循環(huán)體來對待,區(qū)別只是這個循環(huán)體里包含了需要反復執(zhí)行的代碼。循環(huán)嵌套時,要求內循環(huán)完全包含在外循環(huán)之內,不允許出現(xiàn)相互交叉【例4-17】利用雙重循環(huán),輸出九九乘法表:publicclassTable{publicstaticvoidmain(Stringargs[]){intm,n;for(m=1;m<=9;m++){for(n=1;n<=9;n++) System.out.print(m+"*"+n+"="+(m*n)+"\t");System.out.println();}}}4.3項目實戰(zhàn)一分支結構編程1.實戰(zhàn)內容利用if語句編寫程序根據(jù)給定的x值計算分段函數(shù)y的值。 -x (x≤0) y=4x+8 (0<x≤30) x-10 (x>30)2.實戰(zhàn)目的掌握分支結構編程方法。3.實戰(zhàn)過程由于y是關于x的一個分段函數(shù),所以要在main()方法中聲明兩個float類型的變量,分別表示變量x與y。變量x應設計成可以由用戶從鍵盤輸入;變量y根據(jù)x的取值,計算不同算式的值,因為要判斷變量x的3種取值區(qū)間,本程序采用帶嵌套的if語句來完成多個條件的判定。程序編寫如下:importjava.io.*;publicclassTestFunction{ publicstaticvoidmain(String[]args)throwsIOException{ InputStreamReaderin=newInputStreamReader(System.in); BufferedReaderbin=newBufferedReader(in); floatx,y;System.out.println("請輸入x的值"); x=Integer.parseInt(bin.readLine()); if(x<=0)y=-x;elseif(x>0&&x<=30)y=4*x+8;elseif(x>30) y=x-10;System.out.println("x="+x); System.out.println("y="+y);}}4.4項目實戰(zhàn)二循環(huán)結構編程1.實戰(zhàn)內容利用for語句,編程輸出空心菱形,如下所示:************2.實戰(zhàn)目的熟悉循環(huán)結構編程方法。3.實戰(zhàn)過程把空心菱形分成上下兩部分分別輸出,每部分分為多行需要使用循環(huán)結構,每行的星號和空格都需要使用需要循環(huán)結構,所以本程序需要使用兩次二重循環(huán)。聲明兩個int類型變量i、j,分別用來控制外循環(huán)和內循環(huán)的循環(huán)次數(shù)。程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論