1. 程式人生 > 其它 >【JAVA】程式的控制結構

【JAVA】程式的控制結構

程式的控制結構

順序結構

   1> 程式是自上而下執行的,不需要藉助任何特殊的語句就可以實現;

   2> 程式語句只能被執行一次 

package code;
import java.util.Scanner;   //實現從鍵盤輸入

public class Demo{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("輸入兩個整數:");
        int x = scanner.nextInt();
        
int y = scanner.nextInt(); int sum = x + y; System.out.println("求和:sum = " + sum); } }

編譯結果:  

分支結構

if 條件語句

  1> 依次從上到下執行,表示式成立 執行{}內語句,不成立不執行

// 語法
if (表示式){
  表示式成立時執行的語句;  
}else if(表示式){
  語句;
}else if(表示式){
  語句;
}else{
  語句;
}

if…… else if …… else if …… else……

package code;
import java.util.Scanner; //實現從鍵盤輸入 public class Demo{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("輸入兩個整數:"); int x = scanner.nextInt(); int y = scanner.nextInt(); if (x<y){ int sum = x + y; System.out.println(
"當x<y時,x+y = " + sum); }else if(x>y){ int jianfa = x-y; System.out.println("當x>y時,x-y = " + jianfa); }else { System.out.println("不滿足計算條件,x=y"); } } }

編譯結果:  

  

空語句

package code;
import java.util.Scanner;   //實現從鍵盤輸入

public class Demo{

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("輸入兩個整數:");
        int x = scanner.nextInt();
        int y = scanner.nextInt();
        if (x == y);
    }
}

編譯結果:  

switch case

  判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支

    1>  case從上到下執行,當表示式的值與case中的值相同時,則執行該case中的語句塊;

    2>  case可以0~n個

    3>  case後需要加break,如果不加break,會從第一個case開始執行,直到遇到break為止;

    4>  default的位置可以放在與case並列的任何一個位置上;

// 語法結構
switch(variable){
            case "value" :
                //語句
                break; //跳出判斷
            case "value" :
                //語句
                break; //跳出判斷
            default : //其他值
                //語句
        }
package code;

public class Demo{

    public static void main(String[] args) {

        String grade = "B";

        switch(grade){
            case "A" :
                System.out.println("等級為A:優秀");
            case "B" :
                System.out.println("等級為B:良好");
//                break; //不跳出,執行後續語句
            case "C" :
                System.out.println("等級為C:不及格");
                break;  // 跳出,不執行後續語句
            default :
                System.out.println("未定級");
        }
    }
}

編譯結果:  

  

迴圈結構

 while 迴圈

  1> 滿足表示式,執行迴圈,直到不滿足

  2> 不滿足表示式,則不進入迴圈

// 語法結構
while( 表示式 ) {
  //迴圈內容
}
package code;

public class Demo{

    public static void main(String[] args) {

        int a = 8;
        
        while (a<12){
            System.out.println("a = " + a);
            a++;
        }
    }
}

編譯結果:  

do while 迴圈

  1> 至少執行1次迴圈

  2> 不滿足條件 則不執行迴圈,滿足條件再次執行迴圈

// 語法結構
do {
       //程式碼語句
}while(布林表示式);
package code;

public class Demo{

    public static void main(String[] args) {

        int a = 12;

       do{
            System.out.println("a = " + a);
            a++;
        } while (a<12);
    }
}

編譯結果:  

for 迴圈

  1> 初始化:可以宣告一種型別,但可初始化一個或多個迴圈控制變數,也可以是空語句

  2> 表示式:表示式為真時執行迴圈體語句,否則執行後續語句

  3> 更新:變數更新

// 語法結構
for(初始化; 布林表示式; 更新) {
    //程式碼語句
}
package code;

public class Demo{

    public static void main(String[] args) {

        for (int i = 5; i<10; i++){
            System.out.println("i = " + i);
       }
    }
}

編譯結果:  

2> 
        變數初始化
        for(;條件;步長)
        {
            //迴圈體
        }
    3>   
        變數初始化
        for(;條件;)
        {
            //迴圈體
            步長
        }
 
    4>
        變數初始化
        for(;;)
        {
            //步長            
            //自己判斷結束條件
            if(i > 1000)
               break;
        }
for迴圈的三種形態

陣列的增強型 for 迴圈

  1> 宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用域限定在迴圈語句塊,其值與此時陣列元素的值相等。

  2> 表示式是要訪問的陣列名,或者是返回值為陣列的方法

// 語法結構
for(宣告語句 : 表示式)
{
   //程式碼句子
}
package code;

public class Demo{

    public static void main(String[] args) {
        int [] arr = {5, 6, 10, 100};

        for (int a:arr){
            System.out.println(a);
        }
    }
}

編譯結果:   

break

  1> 跳出最裡層迴圈

  2> 在迴圈語句或switch 語句中,用來跳出整個語句塊

package code;

public class Demo{

    public static void main(String[] args) {
        int [] arr = {5, 6, 10, 100};

        for (int i=5; i<8; i++){
           System.out.println("《《《《外層迴圈》》》》");
            for (int a:arr) {
                System.out.println(a);
                if (a == 6) {
                    System.out.println("跳出內層迴圈");
                    break;
                }
            }
        }
    }
}

編譯結果:  

continue

   1> 在 for 迴圈中,continue 語句使程式立即跳轉到更新語句。

   2> 在 while 或者 do…while 迴圈中,程式立即跳轉到布林表示式的判斷語句。

package code;

public class Demo{

    public static void main(String[] args) {
        int [] arr = {5, 6, 10, 100};

        for (int i=5; i<8; i++){

            if (i == 6){
                continue;
            }else {
                System.out.println("《《《《外層迴圈》》》》 " + i);
            }
            for (int a:arr) {
                System.out.println(a);
                if (a == 6) {
                    System.out.println(a + " = 6 跳出內層迴圈");
                    break;
                }

            }
        }
    }
}

編譯結果: