一文詳解Java中流程控制語句_第1頁
一文詳解Java中流程控制語句_第2頁
一文詳解Java中流程控制語句_第3頁
一文詳解Java中流程控制語句_第4頁
一文詳解Java中流程控制語句_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一文詳解Java中流程控制語句目錄概述判斷語句ifif...elseif..elseif...elseif語句和三元運算符的互換選擇語句switchcase的穿透性循環(huán)語句forwhiledo...whilefor和while的小區(qū)別跳出語句breakcontinue死循環(huán)嵌套循環(huán)

概述

在一個程序執(zhí)行的過程中,各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的。也就是說,程序的流程對運行結(jié)果有直接的影響。所以,我們必須清楚每條語句的執(zhí)行流程。而且,很多時候我們要通過控制語句的執(zhí)行順序來實現(xiàn)我們要完成的功能。

判斷語句

if

格式:

if(關(guān)系表達(dá)式){語句體;}

執(zhí)行流程:

首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false如果是true就執(zhí)行語句體如果是false就不執(zhí)行語句體

if...else

格式:

if(關(guān)系表達(dá)式){語句體1;}else{語句體2;}

執(zhí)行流程:

首先判斷關(guān)系表達(dá)式看其結(jié)果是true還是false如果是true就執(zhí)行語句體1如果是false就執(zhí)行語句體2

publicstaticvoidmain(String[]args){

//判斷給定的數(shù)據(jù)是奇數(shù)還是偶數(shù)

//定義變量

inta=1;

if(a%2==0){

System.out.println("a是偶數(shù)");

}else{

System.out.println("a是奇數(shù)");

System.out.println("結(jié)束");

}

if..elseif...else

格式:

if(判斷條件1){執(zhí)行語句1;}elseif(判斷條件2){執(zhí)行語句2;}...}elseif(判斷條件n){執(zhí)行語句n;}else{執(zhí)行語句n+1;}

執(zhí)行流程:

首先判斷關(guān)系表達(dá)式1看其結(jié)果是true還是false如果是true就執(zhí)行語句體1如果是false就繼續(xù)判斷關(guān)系表達(dá)式2看其結(jié)果是true還是false如果是true就執(zhí)行語句體2如果是false就繼續(xù)判斷關(guān)系表達(dá)式看其結(jié)果是true還是false如果沒有任何關(guān)系表達(dá)式為true,就執(zhí)行語句體n+1。

案例:

publicstaticvoidmain(String[]args){

//x和y的關(guān)系滿足如下:

//x=3y=2x+1;

//‐1=x3y=2x;

//x=‐1y=2x–1;

//根據(jù)給定的x的值,計算出y的值并輸出。

//定義變量

intx=5;

inty;

if(x=3){

y=2*x+1;

}elseif(x=‐1x3){

y=2*x;

}else{

y=2*x‐1;

System.out.println("y的值是:"+y);

}

if語句和三元運算符的互換

在某些簡單的應(yīng)用中,if語句是可以和三元運算符互換使用的。

publicstaticvoidmain(String[]args){

inta=10;

intb=20;

//定義變量,保存a和b的較大值

intc;

if(ab){

c=a;

}else{

c=b;

//可以上述功能改寫為三元運算符形式

c=aba:b;

}

選擇語句

switch

格式:

switch(表達(dá)式){case常量值1:語句體1;break;case常量值2:語句體2;break;...default:語句體n+1;break;}

執(zhí)行流程:

首先計算出表達(dá)式的值其次,和case依次比較,一旦有對應(yīng)的值,就會執(zhí)行相應(yīng)的語句,在執(zhí)行的過程中,遇到break就會結(jié)束。最后,如果所有的case都和表達(dá)式的值不匹配,就會執(zhí)行default語句體部分,然后程序結(jié)束掉。

publicstaticvoidmain(String[]args){

//定義變量,判斷是星期幾

intweekday=6;

//switch語句實現(xiàn)選擇

switch(weekday){

case1:

System.out.println("星期一");

break;

case2:

System.out.println("星期二");

break;

case3:

System.out.println("星期三");

break;

case4:

System.out.println("星期四");

break;

case5:

System.out.println("星期五");

break;

case6:

System.out.println("星期六");

break;

case7:

System.out.println("星期日");

break;

default:

System.out.println("你輸入的數(shù)字有誤");

break;

}

switch語句中,表達(dá)式的數(shù)據(jù)類型,可以是byte,short,int,char,enum(枚舉),JDK7后可以接收字符串。

case的穿透性

在switch語句中,如果case的后面不寫break,將出現(xiàn)穿透現(xiàn)象,也就是不會在判斷下一個case的值,直接向后運行,直到遇到break,或者整體switch結(jié)束。

publicstaticvoidmain(String[]args){

inti=5;

switch(i){

case0:

System.out.println("執(zhí)行case0");

break;

case5:

System.out.println("執(zhí)行case5");

case10:

System.out.println("執(zhí)行case10");

default:

System.out.println("執(zhí)行default");

}

上述程序中,執(zhí)行case5后,由于沒有break語句,程序會一直向后走,不會在判斷case,也不會理會break,直接運行完整體switch。由于case存在穿透性,因此初學(xué)者在編寫switch語句時,必須要寫上break。

循環(huán)語句

循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句,當(dāng)反復(fù)執(zhí)行這個循環(huán)體時,需要在合適的時候把循環(huán)判斷條件修改為false,從而結(jié)束循環(huán),否則循環(huán)將一直執(zhí)行下去,形成死循環(huán)。

for

格式:

for(初始化表達(dá)式①;布爾表達(dá)式②;步進(jìn)表達(dá)式④){循環(huán)體③}

執(zhí)行流程:執(zhí)行順序:①②③④②③④②③④②不滿足為止。①負(fù)責(zé)完成循環(huán)變量初始化②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)③具體執(zhí)行的語句④循環(huán)后,循環(huán)條件所涉及變量的變化情況

while

格式:

初始化表達(dá)式①while(布爾表達(dá)式②){循環(huán)體③步進(jìn)表達(dá)式④}

執(zhí)行流程:執(zhí)行順序:①②③④②③④②③④②不滿足為止。①負(fù)責(zé)完成循環(huán)變量初始化。②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)。③具體執(zhí)行的語句。④循環(huán)后,循環(huán)變量的變化情況。while循環(huán)輸出10次HelloWorld:

publicstaticvoidmain(String[]args){

//while循環(huán)實現(xiàn)打印10次HelloWorld

//定義初始化變量

inti=1;

//循環(huán)條件=10

while(i=10){

System.out.println("HelloWorld");

//步進(jìn)

i++;

}

do...while

格式:

初始化表達(dá)式①do{循環(huán)體③步進(jìn)表達(dá)式④}while(布爾表達(dá)式②);

執(zhí)行流程:執(zhí)行順序:①③④②③④②③④②不滿足為止。①負(fù)責(zé)完成循環(huán)變量初始化。②負(fù)責(zé)判斷是否滿足循環(huán)條件,不滿足則跳出循環(huán)。③具體執(zhí)行的語句④循環(huán)后,循環(huán)變量的變化情況輸出10次HelloWorld:

publicstaticvoidmain(String[]args){

intx=1;

do{

System.out.println("HelloWorld");

x++;

}while(x=10);

}

do...while循環(huán)的特點:無條件執(zhí)行一次循環(huán)體,即使我們將循環(huán)條件直接寫成false,也依然會循環(huán)一次。這樣的循環(huán)具有一定的風(fēng)險性,因此初學(xué)者不建議使用do...while循環(huán)。

publicstaticvoidmain(String[]args){

System.out.println("無條件執(zhí)行一次");

}while(false);

}

for和while的小區(qū)別

控制條件語句所控制的那個變量,在for循環(huán)結(jié)束后,就不能再被訪問到了,而while循環(huán)結(jié)束還可以繼續(xù)使用,如果你想繼續(xù)使用,就用while,否則推薦使用for。原因是for循環(huán)結(jié)束,該變量就從內(nèi)存中消失,能夠提高內(nèi)存的使用效率。在已知循環(huán)次數(shù)的時候使用推薦使用for,循環(huán)次數(shù)未知的時推薦使用while。

跳出語句

break

使用場景:終止switch或者循環(huán)

在選擇結(jié)構(gòu)switch語句中在循環(huán)語句中離開使用場景的存在是沒有意義的

publicstaticvoidmain(String[]args){

for(inti=1;ii++){

//需求:打印完兩次HelloWorld之后結(jié)束循環(huán)

if(i==3){

break;

System.out.println("HelloWorld"+i);

}

continue

使用場景:結(jié)束本次循環(huán),繼續(xù)下一次的循環(huán)

publicstaticvoidmain(String[]args){

for(inti=1;i=10;i++){

//需求:不打印第三次HelloWorld

if(i==3){

continue;

System.out.println("HelloWorld"+i);

}

死循環(huán)

死循環(huán):也就是循環(huán)中的條件永遠(yuǎn)為true,死循環(huán)的是永不結(jié)束的循環(huán)。例如:while(true){}。

溫馨提示

  • 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

提交評論