1. 程式人生 > 實用技巧 >401_01 Java基礎 | 003 Java 控制語句

401_01 Java基礎 | 003 Java 控制語句

01 Java基礎 | 003 Java 控制語句

1. 順序結構

  • 一句一句順序執行

2. 選擇結構

2.1 if 選擇
2.1.1 if 單分支
if(條件){
    true執行;
}    

public class DemoIf {
    public static void main(String[] args) {
        int age = (int)(Math.random() * 100); //隨機生成[0,100)的數字賦值給變數age
        if (age < 18){
            System.out.println("是個小屁孩");
        }
        if (age >=18){
            System.out.println("成年人啦");
        }
    }
}
2.1.2 if-else-if 雙分支
if(條件){
    true
}else{
    false
}

public class DemoIf {
    public static void main(String[] args) {
        int age = (int)(Math.random() * 100); //隨機生成[0,100)的數字賦值給變數age
        if (age < 18){
            System.out.println("是個小屁孩");
        }else if(age >= 18){
            System.out.println("成年人啦");
        }
    }
}
2.1.3 if-else-if 多分支
if(條件1){
    條件1 true
}else if(條件2){
    條件1 false 且 條件2 true
}...
    else{
        前邊所有 false
    }

public class DemoIf {
    public static void main(String[] args) {
        int age = (int)(Math.random() * 100); //隨機生成[0,100)的數字賦值給變數age
        if (age < 15){
            System.out.println("小屁孩,好好玩");
        }else if(age < 25){
            System.out.println("青年人,好好學習");
        }else if(age < 45){
            System.out.println("中年人,好好工作");
        }else if(age < 65){
            System.out.println("中老年,補補鈣");
        }else if(age < 85){
            System.out.println("老年人,多運動");
        }else{
            System.out.println("老壽星,古來稀!");
        }
    }
}
2.1.4 巢狀 if-else 條件語句
if(條件a){
    if(條件b){
        語句塊
    }else{
        語句塊
    }
}else{
    語句塊
}
2.2 switch-case選擇
switch(表示式){
    case 值1://注意是:不是;
        語句序列;
    	[break];
    case 值2:
        語句序列;
        [break];
    ...
    [default:
    	預設語句;]
}

3. 迴圈結構

  • 迴圈語句包含4部分
    • 初始化語句
    • 迴圈條件
    • 迴圈體
    • 迭代語句
3.1 while 迴圈
while(條件){
    迴圈體
    迭代因子
}

public class WhileTest {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while(i <= 100){ //計算從1加到100等於多少
            sum += i; //等同於sum = sum + 1;
            i++;
        }
        System.out.println("Sum= " + sum);
    }
}
3.2 do-while 迴圈
do{
    迴圈體;
}while(布林表示式);

public class WhileTest {
    public static void main(String[] args) {
       int i =0;
       int sum = 0;
       do {
           sum += i;
           i++;
       }while(i <= 100);
        System.out.println("Sum= " + sum);
    }
}
3.3 for 迴圈
for(初始表示式(設定迴圈變數初值);布林表示式(條件判斷);步進(迭代因子,遞增或遞減)){
    迴圈體;
}
public class ForTest {
    public static void main(String[] args) {

       int sum = 0;
       for (int i = 0; i <= 100; i++){
           sum += i;
       }
        System.out.println("Sum= " + sum);
    }
}
3.4 迴圈巢狀(雙重for)
public class ForTest {
    public static void main(String[] args) {
        for(int i = 1; i <= 5; i++){
            for(int j = 1; j<= 5; j++){
                System.out.println(i + "  ");
            }
        }
    }
}

3.5 break / continue / return
3.5.1 break
  • 結束迴圈(常用)

    public class BreakTest {
        public static void main(String[] args) {
            for (int i = 0; i < 10; i++){
                System.out.println("i的值是" + i);
                if (i == 2){
                    break;
                }
            }
        }
    }
    
  • 直接結束外層迴圈

    public class BreakTest {
        public static void main(String[] args) {
            outer: //標籤,就像標記一樣
            for (int i = 0; i < 5; i++){
                for (int j = 0; j < 3; j++){
                   System.out.println("i的值為:" + i + "\t" + "j的值為:" + j);
                   if (j == 1){
                       break outer;
                   }
               }
            }
        }
    }//結果 i = 0; j = 0; i = 0 ; j = 1;
    
  • switch- case選擇語句中

3.5.2 continue
  • continue break
    忽略本次迴圈剩下的語句,接著開始下次迴圈 完全終止迴圈本身
    public class ContinueTest {
        public static void main(String[] args) {
            for (int i = 0; i < 3; i++){
                System.out.println("i的值是:" + i);
                if(i == 1){
                    continue;
                }
                System.out.println("continue後的輸出語句");
            }
        }
    }//忽略了i=1的迴圈
    

  • 結束標籤

    public class ContinueTest {
        public static void main(String[] args) {
            outer:
            for (int i = 0; i < 5; i++){
                for (int j = 0; j < 3; j++){
                   System.out.println("i的值為:" + i + "\t" + "j的值為:" + j);
                   if (j == 1){
                       continue outer;
                   }
               }
            }
        }
    }
    

3.5.3 return
  • return功能:

    • 結束方法
    • 有返回值則返回返回值
    public class ReturnTest {
        public static void main(String[] args) {
            for (int i = 0; i < 3; i++){
                System.out.println("i的值是:" + i);
                if(i == 1){
                    return;
                }
                System.out.println("return後的輸出語句");
            }
        }
    }
    

寄語:遇到問題:

  1. 上網查相關資料

  2. 整合到自己的專案

  3. 總結問題

  4. 有哪些方式解決辦法,各個方式有哪些優缺點,什麼情況用什麼解決方式

  5. 整理到自己的知識體系中