1. 程式人生 > 其它 >五、JavaSE語言基礎之流程控制

五、JavaSE語言基礎之流程控制

流程控制的簡單概念

流程控制:指通過關鍵字控制程式碼的執行流程;

一、順序結構:執行順序從左到右從上到下;

順序結構無關鍵字,一般而言大多數程式碼都是順序結構;

二、選擇結構:根據條件判斷是否執行

選擇結構的關鍵字: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:
使用場景:用在迴圈中,結束此次迴圈,繼續下一次迴圈;