五、JavaSE語言基礎之流程控制
阿新 • • 發佈:2021-06-28
流程控制的簡單概念
流程控制:指通過關鍵字控制程式碼的執行流程;
一、順序結構:執行順序從左到右從上到下;
順序結構無關鍵字,一般而言大多數程式碼都是順序結構;
二、選擇結構:根據條件判斷是否執行
選擇結構的關鍵字:if、else、switch;
/** 選擇結構的簡單格式 **/ // 單分支結構 if(){ } // 雙分支結構 if(){ }else{ } // 多分支結構 if(){ }else if(){ }else if(){ }… switch(){ case 1: ... ... } /** 選擇結構詳解 **/ if(條件表示式1){ 條件表示式1成立時執行的程式碼塊; 條件表示式1成立時,將不會繼續執行其後的所有條件判斷直接跳出分支結構; }else if(條件表示式2){ 條件表示式2成立時執行的程式碼塊; }else{ 以上所有條件表示式都不成立時要執行的程式碼塊; }//else可根據實際情況選擇是否新增 switch(表示式){ case值1: 表示式的值為值1時要執行的程式碼塊; break;//如無break,會繼續執行其後的case子句,直至碰到break或者switch語句整體執行完畢 case值n: 表示式的值為值n時要執行的程式碼塊; break; default: 表示式值不為以上所有值時要執行的程式碼塊; break; }
關於switch的幾點注意事項:
1、switch只適用於窮舉法(需列舉出所有可能的情況)
2、switch表示式的值的型別僅限於:int、String、Enum
3、只有當所有的case都不等於switch表示式的值時才執行default;default的執行順序與其位置無關(default即使在case前,也不會最先執行它)
4、break作用是結束switch結構
5、case不能重複
三、迴圈結構:當條件成立時執行循壞體內語句,一直重複,直至條件不成立
迴圈結構的關鍵字:while、for
// 1、while迴圈; // while迴圈的格式: while(條件表示式){ 條件表示式成立時執行的程式碼塊;(迴圈體) 迭代語句;(按指定的算符重複的更改某個變數的值) }//格式與if極為相似,甚至可以說是完全相同; /** while的執行過程: 1、判斷條件表示式是是否成立,不成立結束while; 2、條件表示式成立,執行程式碼塊一次; 3、重複1、2直到條件表示式不成立; **/ //2、do-while; //do-while迴圈的格式 do{ 迴圈體(迴圈執行的程式碼塊) 迭代語句; }while(條件表示式); /** while與do-while的區別: do-while是先執行,後判斷;至少執行一次; while先判斷後執行;可能一次也不執行; **/ //3、for; //格式如下 for(初始化語句;條件表示式;迭代語句){ 迴圈體(條件表示式成立時執行的程式碼塊) }//初始化語句:用於定義變數、給變數賦初始值的語句 //for特殊情況:初始化語句、條件表示式、迭代語句、都可以省略;構成死迴圈 //當條件表示式省略後:條件表示式的取值預設為true 初始化語句; while(條件表示式){ 迴圈體(條件表示式成立時執行的程式碼塊) 迭代語句 }//根據以上兩段程式碼格式,我們可以看出for和while完全等價,只是格式不同 //for迴圈中相關變數的作用域 int a=1;//變數a:在main方法的大括號內定義的作用域為整個main方法 for(int b=1;b<5;){ //變數b:在for迴圈的初始化語句中定義的作用域為整個for迴圈 int c=1; //變數c:在for迴圈的迴圈體中定義的,作用域為本次for迴圈 }//一個變數的作用域取決於定義此變數的括號
四、跳轉:
跳轉語句共兩個,分別為:break與continue;
break:
使用場景1:用在switch中,作用:結束switch結構;
使用場景2:用在迴圈中,作用:結束本層迴圈;
continue:
使用場景:用在迴圈中,結束此次迴圈,繼續下一次迴圈;