第二講-控制結(jié)構(gòu)_第1頁
第二講-控制結(jié)構(gòu)_第2頁
第二講-控制結(jié)構(gòu)_第3頁
第二講-控制結(jié)構(gòu)_第4頁
第二講-控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二講Java語句及控制結(jié)構(gòu)第二講Java語句及控制結(jié)構(gòu)

Java語句選擇語句循環(huán)語句知識點表達(dá)式語句復(fù)合語句if語句switch語句

for語句while語句do…while語句break語句continue語句return語句重點選擇語句和循環(huán)語句本講概要1Java語句語句是指程序中的一個完整的執(zhí)行單元,用來對數(shù)據(jù)進(jìn)行加工(完成操作任務(wù))處理。Java語句是Java標(biāo)識符的集合,由關(guān)鍵字、常量、變量和表達(dá)式構(gòu)成。Java語句分為說明性語句和操作性語句。說明性語句用來說明包和類的引入、類的聲明、變量的聲明。例如:

importjava.applet.Applet; publicclassHelloAppletextendsApplet;

操作性語句有表達(dá)式語句、復(fù)合語句、選擇語句和循環(huán)語句等。表達(dá)式語句表達(dá)式后面跟一個分號“;”組成表達(dá)式語句。常用的表達(dá)式語句有賦值語句、自加自減語句、方法調(diào)用語句等。例如:doublesalary=100;//賦值語句aValue++;//自加語句System.out.println("HelloWorld!"); //方法調(diào)用語句復(fù)合語句復(fù)合語句也稱為塊(block)語句,由零個或多個語句用大括號“{}”括起來的部分。復(fù)合語句不需要以“;”結(jié)束,復(fù)合語句的右括號“}”后面不能出現(xiàn)分號。執(zhí)行復(fù)合語句時,實際是執(zhí)行該復(fù)合語句一對大括號中所有語句,也就是從語法上講,無論有多少語句,都只被看成一條簡單語句。復(fù)合語句在結(jié)構(gòu)式語句(選擇語句和循環(huán)語句)中應(yīng)用廣泛。publicclassBlockDemo{publicstaticvoidmain(String[]args){

booleancondition=true; if(condition) {//語句塊1開始

System.out.println("Conditionistrue.");//只有一條語句

}//語句塊1結(jié)束

else

【例2-11】復(fù)合語句示例

{//語句塊2開始

System.out.println("Conditionisfalse.");

System.out.println("thisisblocktwo"); //這里有兩條語句

}//語句塊2結(jié)束}}

【例2-11】復(fù)合語句示例

2選擇語句if語句if...else語句if...else...if語句switch語句if語句if語句的語法格式為:

if(條件表達(dá)式)

語句;其功能是:如果條件表達(dá)式的值為true,則執(zhí)行語句;否則,該語句不被執(zhí)行。當(dāng)滿足條件表達(dá)式,需要執(zhí)行多條語句時,需要使用一對花括號將多條語句包含起來,構(gòu)成復(fù)合語句。表達(dá)式語句Afalsetrueif...else語句if...else語句的語法格式為:

if(條件表達(dá)式)<語句1>;else<語句2>;其功能是:如果條件表達(dá)式的值為true,則執(zhí)行語句1,忽略else和語句2;如果條件表達(dá)式的值為false,程序忽略語句1,執(zhí)行else后面的語句2。

false表達(dá)式語句1true語句2//找出三個整數(shù)中的最大值和最小值。

publicclassMax3if{publicstaticvoidmain(String

args[]){

inta=1,b=2,c=3,max,min;if(a>b)max=a;elsemax=b;if(c>max)max=c;

System.out.println("max="+max);min=a<b?a:b;min=c<min?c:min;

System.out.println("min="+min);}}

【例2-12】使用if...else語句的例子if...else...if語句語法格式:

if(條件表達(dá)式1)語句1; elseif(條件表達(dá)式2)語句2; elseif(條件表達(dá)式3)語句3; …… elseif(條件表達(dá)式n-1)語句n-1 else語句n;其功能是:

依次計算條件表達(dá)式的值,若為true,就執(zhí)行它后面的語句,忽略其余的部分;所有表達(dá)式的值都為false時,就執(zhí)行最后一個else后面的語句n。語句1、語句2……語句n都可以是復(fù)合語句。

e1語句1e2語句2en語句n語句n+1…

truefalsetruetruefalsefalseif...else...if語句publicclass

IfElseExample

{ publicstaticvoidmain(String[]args){

int

testscore=85; Stringgrade; if(testscore>=90){ grade="優(yōu)秀"; } elseif(testscore>=80){ grade="良好"; } elseif(testscore>=70){ grade="中等"; } 【例2-13】使用if...else…if語句的例子

elseif(testscore>=60){ grade="及格"; } else{ grade="不及格"; }

System.out.println("該學(xué)生的成績?yōu)椋?+grade); }}【例2-13】使用if...else…if語句的例子switch語句switch語句的定義形式為:

switch(<表達(dá)式>) { case<常量1>:<語句1>; break; case<常量2>:<語句2>; break; …… [default:<語句>;] }其功能是:先計算條件表達(dá)式的值,然后根據(jù)表達(dá)式的取值與各個常量比較,如果表達(dá)式值與哪個常量相等,就執(zhí)行該常量后面的語句。

default語句常量1truefalse…語句1;break;常量2truefalse語句2;break;常量ntruefalse語句n;break;switch表達(dá)式switch結(jié)束switch結(jié)束switch語句使用switch語句時注意以下幾點:case后面的常量必須是整型或字符型的值,且不能有相同的值。switch語句從與選擇值相匹配的case標(biāo)簽處開始執(zhí)行,一直執(zhí)行到break處(執(zhí)行break將跳出switch語句)或是switch的末尾。當(dāng)表達(dá)式值與所有的case標(biāo)簽均不匹配時,如果switch中含有default標(biāo)簽,將執(zhí)行default標(biāo)簽后面的語句;如果default標(biāo)簽也不存在,那么switch中沒有任何語句得到執(zhí)行,直接跳出switch語句。switch語句//用week表示星期幾,用switch語句將week星期幾轉(zhuǎn)換成對應(yīng)英文字符串。publicclassWeek1{publicstaticvoidmain(String

args[]){

intweek=1;

System.out.print("week="+week+"");switch(week){case0:System.out.println("Sunday");break;case1:System.out.println("Monday");break;case2:System.out.println("Tuesday");break;case3:System.out.println("Wednesday");break;【例2-14】

switch語句示例。 case4:System.out.println("Thursday");break; case5:System.out.println("Friday");break;case6:System.out.println("Saturday");break; default:System.out.println("DataError!"); }}}【例2-14】

switch語句示例。3

循環(huán)語句一個有效的循環(huán)有三個基本要素:循環(huán)條件:決定循環(huán)開始或結(jié)束的條件判斷。循環(huán)變量的初值:循環(huán)條件中的變量在使用前需要初始化。循環(huán)變量的增量:在循環(huán)過程中,用于循環(huán)條件的變量需要不斷改變。for語句while語句do…while語句break語句continue語句3

循環(huán)語句for語句for語句的一般形式為:

for(表達(dá)式1;表達(dá)式2;表達(dá)式3){語句序列;//循環(huán)體}for語句執(zhí)行過程

①先求解表達(dá)式1。 ②求解表達(dá)式2,若其值為true,則執(zhí)行循環(huán)體,然后執(zhí)行下面第③步;若其值為false,則結(jié)束循環(huán),轉(zhuǎn)到第⑤步。 ③求解表達(dá)式3。 ④轉(zhuǎn)回上面第②步繼續(xù)執(zhí)行。 ⑤循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句。false表達(dá)式1表達(dá)式2表達(dá)式3true循環(huán)體for語句//求出個、十、百、千位數(shù)字的4次方的和等于該數(shù)本身的所有四位數(shù)。publicclass

ForTest{publicstaticvoidmain(String

args[]){

System.out.println(“各位數(shù)字的4次方的和等于該數(shù)本身的四位數(shù)有:");

for(intn=1000;n<10000;n++) { int

a,b,c,d; a=n/1000; b=n/100%10; c=n/10%10; d=n%10; 【例2-15】

for語句示例。

if(a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d==n)

System.out.println(n); }}}【例2-15】

for語句示例。

while語句while語句的形式為:

while(表達(dá)式){語句序列;//循環(huán)體

//循環(huán)控制變量的修改}while循環(huán)語句常用在事前不能知道循環(huán)次數(shù)的場合執(zhí)行過程: 當(dāng)條件表達(dá)式的值為true時,執(zhí)行一次循環(huán)體語句,然后回過頭來再判斷條件表達(dá)式的值,如此重復(fù);直到條件表達(dá)式的值為false時,跳出循環(huán)體,執(zhí)行循環(huán)體下面的語句。while循環(huán)語句常用在事前不能知道循環(huán)次數(shù)的場合。false條件表達(dá)式循環(huán)體true

while語句do…while語句do...while語句的形式為:

do{語句序列;//循環(huán)體}while(表達(dá)式);注意:while語句是先判斷后執(zhí)行,而dowhile是先執(zhí)行后判斷,也即dowhile的循環(huán)體至少執(zhí)行一次。執(zhí)行過程:

先執(zhí)行循環(huán)體語句,再判斷條件表達(dá)式的值,如果條件表達(dá)式的值為true時,再執(zhí)行執(zhí)行一次循環(huán)體,如果條件表達(dá)式的值為false時,跳出循環(huán)體,執(zhí)行循環(huán)體下面的語句。do…while循環(huán)語句也常用在未知循環(huán)次數(shù)的場合。false條件表達(dá)式循環(huán)體truedo…while語句

//編寫程序,x值為5時,求x+x2/2!+…+xn/n!的值,要求xn/n!的值不大于1.0×10-8。

publicclassWhileTest

{publicstaticvoidmain(String

args[]){

intx=5,n=1; doublesum=0,d=1.0;

while(d>1.e-8){ d*=x; d/=n; sum+=d; n++; }【例2-16】

while語句示例。

System.out.println("x="+x+"sum="+sum);}}【例2-16】

while語句示例。publicclassWhileTest2{publicstaticvoidmain(String

args[]){

intx=5,n=1; doublesum=0,d=1.0; do{ d*=x; d/=n; sum+=d; n++; }while(d>1.e-8);

System.out.println("x="+x+"sum="+sum);}}【例2-16】

do…while語句示例。break語句break語句用在循環(huán)結(jié)構(gòu)中和switch語句中,允許從循環(huán)體內(nèi)部跳出或從switch語句的case子句中跳出。在不帶標(biāo)號的break語句:

break;

功能:跳出它所在的循環(huán)(只能跳出一重循環(huán)),并從該循環(huán)的后繼語句開始繼續(xù)執(zhí)行。帶標(biāo)號的break語句:

break標(biāo)號;

功能:從多重循環(huán)體的內(nèi)部跳出標(biāo)號所標(biāo)志的那層循環(huán),即結(jié)束標(biāo)號所標(biāo)志的那層循環(huán),并從標(biāo)號標(biāo)志的那層循環(huán)后面的語句開始繼續(xù)執(zhí)行。break語句//求1+2+3+…+100的累加和,當(dāng)和大于2000時輸出這個數(shù)。publicclassBreakTest1{ publicstaticvoidmain(String

args[]){

intsum=0,i;

for(i=1;i<=100;i++){ sum+=i; if(sum>2000)break; }

System.out.println("當(dāng)加到"+i+"時累加和為"+sum+"大于2000了"); } }【例2-17】

break語句示例1。//編寫應(yīng)用程序,程序運行后,從命令行輸入一個正整數(shù),回車后輸出小于等于該整數(shù)的所有素數(shù)。importjava.io.*;publicclassBreakTest{publicstaticvoidmain(String

args[])throwsIOException{ Stringstr;

BufferedReader

buf;

intk;

buf=newBufferedReader(newInputStreamReader(System.in));【例2-18】

break語句示例2。

System.out.println("請輸入整數(shù),回車后求小于等于該整數(shù)的所有素數(shù):");

str=buf.readLine(); k=Integer.parseInt(str); System.out.println("2到"+k+"之間的所有素數(shù):");

for(inti=2;i<=k;i++){ if(isPrime(i))

System.out.print(i+"\t"); } }【例2-18】

break語句示例。 staticboolean

isPrime(intn){

booleanb=true; for(intk=2;k<=n/2;k++){

if(n%k==0){ b=false; break; } } returnb; } }【例2-18】

break語句示例。//運行該程序,正常情況下可以從鍵盤接受9個輸入字符,但當(dāng)輸入b按回車鍵,breaklab1語句就會結(jié)束二重循環(huán)。publicclassBreakTest2{publicstaticvoidmain(String

args[])throwsjava.io.IOException{ charch; lab1://此處為標(biāo)號標(biāo)識符

for(inti=0;i<3;i++)

for(intj=0;j<3;j++){

ch=(char)System.in.read(); System.in.skip(2);【例2-19】代標(biāo)號break語句示例。

if(ch=='b') breaklab1;//跳到標(biāo)號標(biāo)識處

if(ch=='c')

System.out.println("繼續(xù)"); }

System.out.println("結(jié)束二重循環(huán)");} }【例2-19】代標(biāo)號break語句示例。continue語句continue語句終止當(dāng)前這一輪循環(huán),跳到下一輪循環(huán)并執(zhí)行。而break語句跳出整個循環(huán);不帶標(biāo)號的continue語句:

continue;

功能:跳過本輪循環(huán)的剩余語句,進(jìn)入循環(huán)的下一輪。帶標(biāo)號的continue語句:

continue標(biāo)號;功能:從多重循環(huán)的內(nèi)層循環(huán)跳到外層循環(huán),執(zhí)行標(biāo)號所標(biāo)示的循環(huán)的下一輪。

continue語句

//輸出1~9中除6以外所有偶數(shù)的平方值。

publicclassCTest1{publicstaticvoidmain(String

args[]){

for(inti=2;i<=9;i+=2){

if(i==6) continue;

System.out.println(i+"的平方

="+i*i);} } }【例2-20】continue語句示例。

//程序運行后,從命令行輸入一個正整數(shù),回車后輸出小于等于該整數(shù)的所有素數(shù)。(即用continue語句實現(xiàn)例2-18)importjava.io.*;publicclassContinueTest{publicstaticvoidmain(String

args[])throwsIOException{ Stringstr;

BufferedReader

buf;

intk;

buf=newBufferedReader(newInputStreamReader(System.in));【例2-21】代標(biāo)號continue語句示例。

System.out.println("請輸入整數(shù),回車后求小于等于該整數(shù)的所有素數(shù):");

str=buf.readLine(); k=Integer.parseInt(str); System.out.println("2到"+k+"之間的所有素數(shù):");

【例2-21】代標(biāo)號continue語句示例。

//外層循環(huán)對2~k的數(shù),逐個判斷是否素數(shù)。

next:for(inti=2;i<=k;i++){

//內(nèi)層循環(huán)判斷外層循環(huán)給定的數(shù)i是否為素數(shù)

for(intj=2;j<=i/2;j++){

//如果i有因子,則不是素數(shù);

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論