1. 程式人生 > >Java基礎之結構-->>條件結構與循環結構

Java基礎之結構-->>條件結構與循環結構

分隔 tin 情況 方法 1.5 pri 學習 多條語句 for循環

Java中程序流程控制語句包括條件結構、循環結構和跳轉語句

4.1條件結構

條件結構包括順序結構和選擇結構。順序結構在程序執行中沒有跳轉和判斷,知道程序結束為止。選擇結構包括 if 語句,if-else 語句,switch 語句,在程序執行過程中可以改變程序的執行流程。

4.1.1 if 語句

if 語句是條件判斷後再處理的一種語法結構

if(條件表達式){     //條件成立後執行
  一條或多條語句   
}

//條件表達式的值只能是 boolean 類型 false / true

4.1.2 if-else 語句

if-else 語句又稱為雙分支選擇結構

if(條件表達式){
  語句1           
//當條件表達式成立,執行1 }else{ 語句2 //當條件表達式不成立,執行2 }

示例:

int num1 = 60;
int num2 = 90;
if(num1 > num2){
  System.out.println("num1大於num2");   
}else{
  System.out.println("num2大於num1");   
}

// num2大於num1

4.1.3 if-else-if 語句

if(條件表達式1){                 //如果條件表達式1成立
  語句塊1                       //就執行語句塊1的代碼
}else if(條件表達式2){ //否則,如果條件表達式2成立 語句塊2 //就執行語句塊2的代碼 }else if(條件表達式n){ //如果條件表達式n成立 語句塊n //就執行語句塊n的代碼 } .... //對其他條件進行判斷 else{ //如果以上所有條件都不成立 語句塊 n+1 //就執行語句塊 n+1 代碼 }

根據學生成績,判斷屬於哪個檔次,並輸出:

class twoday 
{
    public static void main(String[] args)  
    {
        int score = 100;
        if(score>=90){
            System.out.println("優");
        }else if(score >=80){
            System.out.println("良");
        }else if(score>=60){
            System.out.println("合格");
        }else{
            System.out.println("不合格");
        }
    }
}

//

4.1.4 選擇語句的嵌套

選擇語句的嵌套是指在 if 語句中再嵌套 if 語句

if(條件表達式1){
            if(條件表達式2){
                語句塊1
            }else{
                    語句塊2
                }
        }else{
            if(條件表達式3){
                語句塊3
            }else{
                    語句塊4
                }
        }

使用嵌套的 if 語句,根據學生成績判斷屬於哪個檔次

class twoday 
{
    public static void main(String[] args)  
    {
        int score = 85;
         if(score >=60){
            if(score>=80){
                if(score>=90){
                    System.out.println("優");
                }else{
                    System.out.println("良");
                }
            }else{
                System.out.println("合格");    
            }
        }else{
            System.out.println("不合格");
        }
    }
}
//

4.1.5 switch 語句

switch 語句屬於多分支結構,可以代替復雜的 if-else-if 語句,表達式的結果類型只能是 byte ,short , int ,char 類型,switch 語句是多分支的開關語句

        switch(表達式){
            case 常量表達式1 :
                    語句組 1break;
            case 常量表達式2 :
                    語句組 2break;
            case 常量表達式3 :
                    語句組 3break;
            .....
            default:
                    語句組 n;
        }

用switch語句輸出學生成績:

class twoday 
{
    public static void main(String[] args)  
    {
        int score = 80;
        int rank = score /10;         //將100分制轉換為 10分制,方便判斷
        switch( rank ){
            case 10:
            case 9:
                System.out.println("優");
            break;
            case 8:
            case 7:
                System.out.println("良");
            break;
            case 6:
                System.out.println("合格");
            break;
            default:
                System.out.println("不合格");
        }
    }
}
//

4.1.6 if 與 switch 的區別

if 語句和 switch 語句結構很相似,都是多分枝選擇語句,但是switch 結構只能處理等值條件判斷,而且必須是整型變量或者字符型變量,而多重 if 結構沒有這個限制。使用 switch 結構時不要忘記每個 case 最後加 break ;通常情況,分支超過3層,使用 switch 語句,如果條件判斷一個範圍,使用 if-else-if 語句。

4.2 循環結構

循環結構一般包括 for , while , do-while 共3種循環語句

4.2.1 while 循環語句

while 循環首先判斷循環條件是否滿足,如果第一次循環條件不滿足,直接跳出循環,循環不會執行,while 循環的特點,先判斷,後執行。

while (布爾表達式) {
     語句或語句塊;   
}

技術分享圖片

使用while 循環輸出1~100

class twoday 
{
    public static void main(String[] args)  
    {
        int i=1;
        while(i<=100){     //循環表達式
            System.out.println(i);
            i++;    //循環變量自增1
        }
    }
}

4.2.2 do-while 循環語句

先執行 do 後面的循環體語句,然後對 while 後面的布爾表達式進行判斷,如果為 true,則再次執行 do 後面的循環體,並再次對布爾表達式的值進行判讀。否則結束循環體,do-while 特點是條件表達式無論是否成立,都至少會執行一次。

do{
   語句或語句塊   
}while(布爾表達式);

技術分享圖片

通過 do-while 輸出1~100

class twoday 
{
    public static void main(String[] args)  
    {
        int i=1;
        do{
            System.out.println(i);    //do 先執行一次輸出
            i++;
        }while(i<=100);
    }
}

4.2.3 while 與 do-while 的區別

while 語句是先判斷後執行,do-while 是先執行後判斷,(如果條件表達式不成立,while不會執行。do-while 語句至少會執行一次)。

4.2.4 for循環語句

for(初始化表達式;條件表達式;叠代語句){
    循環體語句;
}

初始化表達式只在循環前執行一次,通常作為叠代變量的定義。條件表達式是一個布爾表達式,當值為 true 時,才會繼續執行 for 語句的循環體語句,叠代表達式用於改變循環條件的語句,如自增,自減等運算。

for循環語句的執行過程:

①執行初始化表達式

②對中間的條件表達式值進行判斷,如果為 true,則繼續執行後面的循環體語句

③執行叠代表達式,改變循環變量的值

④重復執行上述兩步,開始下一次循環,直到某次中間的條件表達式為 false,結束整個循環語句

用for 循環輸出 1~100

class twoday 
{
    public static void main(String[] args)  
    {
        for(int i=0;i<=100;i++){    //定義循環變量,循環語句,初始化值為 0 ;
            System.out.println(i);
        }
    }
}

註:即使表達式為空,分隔3個表達式的分號“;”也不能省略。

for(;;;){

}

//合法的,正確的

4.2.5 嵌套循環語句

①while 語句嵌套

while(條件表達式1){
    while(條件表達式2){
    .....
        }
}            

②do-while 語句嵌套

        do{
            do{
                ...
            }while(條件表達式1);
        }while(條件表達式2);

③for語句與while循環嵌套

for(;;){
    while(條件表達式){...}
}

④for語句嵌套

for(;;){
    for(;;){...}
}

⑤for 循環與 do-while循環嵌套

for(;;){
    do{...}while(條件表達式);
}

⑥while循環與for循環嵌套

while(條件表達式){
    for(;;){...}
}

⑦do-while循環與for循環嵌套

do{
    for(;;){...}
}while(條件表達式);

⑧do-while循環與while循環嵌套

do{
    while(條件表達式1){...}
}while(條件表達式2);

⑨while循環與do-while循環嵌套

while(條件表達式1){
    do{...}while(條件表達式2);
}

使用嵌套循環用“*”輸出直角三角形

class twoday 
{
    public static void main(String[] args)  
    {
        int i, j;
        for(i=0;i<6;i++){      //第一重循環控制行數
            for(j=0;j<i;j++){          //第二重循環控制*數量
                System.out.print("*");   //輸出*
            }
            System.out.println();     //換行
        }
    }
}
/*
*
**
***
****
*****
*/

4.3 跳轉語句

跳轉語句有 break,continue和return

4.3.1 break 跳轉語句

當循環結構中執行到 break 語句時,它立即停止當前循環並執行循環下面的語句

在循環結構中使用 break 輸出0~99

class twoday 
{
    public static void main(String[] args)  
    {
        int i;
        for(i=1;i<101;i++){
            if(i==100){
                break;       //當i=100時停止循環
                }
            System.out.println(i);
        }
    }
}
// 1 2 3 4 5 ...99

當i=100時,執行break語句,終止循環,在一個循環中可以有多個break語句,break不是專門用來終止循環的,只有在某些情況下來取消一個循環。

4.3.2 continue 跳轉語句

continue 是跳過本次循環,執行下一次循環語句

class twoday 
{
    public static void main(String[] args)  
    {
        int i;
        for(i=1;i<101;i++){
            if(i==3){               //當i=3時,跳過本次循環,繼續執行後面
                continue;
                }
            System.out.println(i);
        }
    }
}
// 1 2  4 5 ...99

4.3.3 break和continue的區別

continue 語句只結束本次循環,而不是終止整個循環的執行。而break 語句則是結束整個循環過程,不再判斷執行循環的條件是否成立。

4.3.4 return 跳轉語句

return 語句是終止當前方法運行,返回到調用該方法的語句處,該語句還提供相應返回值

if(x>=0){
            return true;
        }
        return false;
    }

當 if 條件語句結果為true 時,執行第一條 return 語句,退出方法。下面(return false)跳過不執行

非常感謝<從零開始學Java>一書對我的幫助,本文借鑒於此,僅用來學習,回顧,鞏固。再次感謝。

Java基礎之結構-->>條件結構與循環結構