




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一文詳解Java中流程控制語句目錄概述判斷語句ifif...elseif..elseif...elseif語句和三元運算符的互換選擇語句switchcase的穿透性循環語句forwhiledo...whilefor和while的小區別跳出語句breakcontinue死循環嵌套循環
概述
在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說,程序的流程對運行結果有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實現我們要完成的功能。
判斷語句
if
格式:
if(關系表達式){語句體;}
執行流程:
首先判斷關系表達式看其結果是true還是false如果是true就執行語句體如果是false就不執行語句體
if...else
格式:
if(關系表達式){語句體1;}else{語句體2;}
執行流程:
首先判斷關系表達式看其結果是true還是false如果是true就執行語句體1如果是false就執行語句體2
publicstaticvoidmain(String[]args){
//判斷給定的數據是奇數還是偶數
//定義變量
inta=1;
if(a%2==0){
System.out.println("a是偶數");
}else{
System.out.println("a是奇數");
System.out.println("結束");
}
if..elseif...else
格式:
if(判斷條件1){執行語句1;}elseif(判斷條件2){執行語句2;}...}elseif(判斷條件n){執行語句n;}else{執行語句n+1;}
執行流程:
首先判斷關系表達式1看其結果是true還是false如果是true就執行語句體1如果是false就繼續判斷關系表達式2看其結果是true還是false如果是true就執行語句體2如果是false就繼續判斷關系表達式看其結果是true還是false如果沒有任何關系表達式為true,就執行語句體n+1。
案例:
publicstaticvoidmain(String[]args){
//x和y的關系滿足如下:
//x=3y=2x+1;
//‐1=x3y=2x;
//x=‐1y=2x–1;
//根據給定的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語句和三元運算符的互換
在某些簡單的應用中,if語句是可以和三元運算符互換使用的。
publicstaticvoidmain(String[]args){
inta=10;
intb=20;
//定義變量,保存a和b的較大值
intc;
if(ab){
c=a;
}else{
c=b;
//可以上述功能改寫為三元運算符形式
c=aba:b;
}
選擇語句
switch
格式:
switch(表達式){case常量值1:語句體1;break;case常量值2:語句體2;break;...default:語句體n+1;break;}
執行流程:
首先計算出表達式的值其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。最后,如果所有的case都和表達式的值不匹配,就會執行default語句體部分,然后程序結束掉。
publicstaticvoidmain(String[]args){
//定義變量,判斷是星期幾
intweekday=6;
//switch語句實現選擇
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("你輸入的數字有誤");
break;
}
switch語句中,表達式的數據類型,可以是byte,short,int,char,enum(枚舉),JDK7后可以接收字符串。
case的穿透性
在switch語句中,如果case的后面不寫break,將出現穿透現象,也就是不會在判斷下一個case的值,直接向后運行,直到遇到break,或者整體switch結束。
publicstaticvoidmain(String[]args){
inti=5;
switch(i){
case0:
System.out.println("執行case0");
break;
case5:
System.out.println("執行case5");
case10:
System.out.println("執行case10");
default:
System.out.println("執行default");
}
上述程序中,執行case5后,由于沒有break語句,程序會一直向后走,不會在判斷case,也不會理會break,直接運行完整體switch。由于case存在穿透性,因此初學者在編寫switch語句時,必須要寫上break。
循環語句
循環語句可以在滿足循環條件的情況下,反復執行某一段代碼,這段被重復執行的代碼被稱為循環體語句,當反復執行這個循環體時,需要在合適的時候把循環判斷條件修改為false,從而結束循環,否則循環將一直執行下去,形成死循環。
for
格式:
for(初始化表達式①;布爾表達式②;步進表達式④){循環體③}
執行流程:執行順序:①②③④②③④②③④②不滿足為止。①負責完成循環變量初始化②負責判斷是否滿足循環條件,不滿足則跳出循環③具體執行的語句④循環后,循環條件所涉及變量的變化情況
while
格式:
初始化表達式①while(布爾表達式②){循環體③步進表達式④}
執行流程:執行順序:①②③④②③④②③④②不滿足為止。①負責完成循環變量初始化。②負責判斷是否滿足循環條件,不滿足則跳出循環。③具體執行的語句。④循環后,循環變量的變化情況。while循環輸出10次HelloWorld:
publicstaticvoidmain(String[]args){
//while循環實現打印10次HelloWorld
//定義初始化變量
inti=1;
//循環條件=10
while(i=10){
System.out.println("HelloWorld");
//步進
i++;
}
do...while
格式:
初始化表達式①do{循環體③步進表達式④}while(布爾表達式②);
執行流程:執行順序:①③④②③④②③④②不滿足為止。①負責完成循環變量初始化。②負責判斷是否滿足循環條件,不滿足則跳出循環。③具體執行的語句④循環后,循環變量的變化情況輸出10次HelloWorld:
publicstaticvoidmain(String[]args){
intx=1;
do{
System.out.println("HelloWorld");
x++;
}while(x=10);
}
do...while循環的特點:無條件執行一次循環體,即使我們將循環條件直接寫成false,也依然會循環一次。這樣的循環具有一定的風險性,因此初學者不建議使用do...while循環。
publicstaticvoidmain(String[]args){
System.out.println("無條件執行一次");
}while(false);
}
for和while的小區別
控制條件語句所控制的那個變量,在for循環結束后,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。在已知循環次數的時候使用推薦使用for,循環次數未知的時推薦使用while。
跳出語句
break
使用場景:終止switch或者循環
在選擇結構switch語句中在循環語句中離開使用場景的存在是沒有意義的
publicstaticvoidmain(String[]args){
for(inti=1;ii++){
//需求:打印完兩次HelloWorld之后結束循環
if(i==3){
break;
System.out.println("HelloWorld"+i);
}
continue
使用場景:結束本次循環,繼續下一次的循環
publicstaticvoidmain(String[]args){
for(inti=1;i=10;i++){
//需求:不打印第三次HelloWorld
if(i==3){
continue;
System.out.println("HelloWorld"+i);
}
死循環
死循環:也就是循環中的條件永遠為true,死循環的是永不結束的循環。例如:while(true){}。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 病毒與生物安全法律法規合同
- 壁畫與古代漁業技術合同
- 保險業保險業風險報告編制合同
- 休閑農業園區場地調研與農產品加工合同
- 老人病患護理課件
- 翻譯相關課件
- 美術用具介紹課件
- 單位工作總結怎樣寫
- 服裝生產車間安全培訓
- 安全生產法7個職責
- 2025年北京市中考數學試卷真題(含答案解析)
- 2025-2030中國車載移動變電站行業未來趨勢與前景規劃分析報告
- 標準商鋪租賃合同含物業管理費及公共收益分成
- 醫療質量活動月活動方案
- 2025至2030中國汽車售后服務行業市場現狀分析及競爭格局與投資發展報告
- 廣東省梅州市五華縣2024-2025學年七年級下學期數學期末考試模擬卷(含答案)
- 警察政治培訓課件
- 毒蛇咬傷的急救處理要點
- 2026年高考政治一輪復習:高考政治命題備考策略
- GB/T 44679-2024叉車禁用與報廢技術規范
- 邊坡噴護檢驗批質量驗收記錄表
評論
0/150
提交評論