流程控制语句

Y423x發表於2024-02-29

流程控制語句

順序結構

//範例:
public class Test {
    public static void main(String[] args) {
        System.out.println("努力做主人喜歡的事");
        System.out.println("大小姐駕到!通通閃開!");
        System.out.println("凌冬已至,故鄉的梅花開了嗎");
        System.out.println("心懷不懼,方能翱翔於天際");
    }
}

順序結構語句是Java程式預設的執行流程,按照程式碼的先後順序,從上到下依次執行


分支結構

If語句

If語句在程式中是用來判斷的

第一種格式(單條件判斷)

格式:

if (關係表示式) {
    語句體;
}

舉例:

if (酒量 > 2) {
    System.out.println("小夥子,不錯!");
}

執行流程:

  1. 首先計算關係表示式的值
  2. 如果關係表示式的值為true就執行語句體
  3. 如果關係表示式的值為false就不執行語句體
  4. 繼續執行後面的其他語句

練習--老丈人選女婿

需求:鍵盤錄入女婿酒量,如果大於2斤,老丈人給出回應,反之不回應

import java.util.Scanner;

public class IfDemo1 {
    public static void main(String[] args) {
        //需求:鍵盤錄入女婿酒量,如果大於2斤,老丈人給出回應,反之不回應
        //分析:
        //1.鍵盤錄入女婿的酒量
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入女婿的酒量");
        int wine = sc.nextInt();
        //2.對酒量進行判斷
        if (wine > 2) {
            System.out.println("小夥子,不錯呦!!");
        }
    }
}

if的注意點:

  1. 大括號的開頭可以另起一行書寫,但是建議寫在第一行的末尾
  2. 在語句體中,如果只有一句程式碼,大括號可以省略不寫。(個人建議,大括號還是不要省略的)
  3. 如果對一個布林型別的變數進行判斷,建議不要用號(因為可能會把寫成=),直接把變數寫在小括號即可

練習--考試獎勵

小紅:如果你這次考試全班第一,我就做你女朋友。

public class Test1 {
    public static void main(String[] args) {
        //小紅:如果你這次考試全班第一,我就做你女朋友。

        //分析:
        //1.定義變數記錄小明的名次
        int ranking = 1;
        //2.對小明的名次進行判斷
        if(ranking == 1){
            System.out.println("小紅成為了小明的女朋友");
        }
    }
}

練習--自動駕駛

需求:紅燈停,綠燈行,黃燈請你等一等

public class Test2 {
    public static void main(String[] args) {
        //需求:紅燈停,綠燈行,黃燈請你等一等

        //1.定義三個變數表示燈的狀態
        //true 亮  false 滅
        boolean isLightGreen = false;
        boolean isLightYellow = false;
        boolean isLightRed = true;

        //2.判斷
        //紅燈亮,就停止
        //黃燈亮,就減速
        //綠燈亮,就行駛
        if(isLightGreen){
            System.out.println("Go!");
        }

        if(isLightYellow){
            System.out.println("slow!");
        }

        if(isLightRed){
            System.out.println("stop!");
        }
    }
}

第二種格式(雙條件判斷)

格式:

if (關係表示式) {
    語句體1;
} else {
    語句體2;
}

執行流程:

  1. 首先計算關係表示式的值
  2. 如果關係表示式的值為true就執行語句體1
  3. 如果關係表示式的值為false就執行語句體2
  4. 繼續執行後面的其他語句

練習--吃飯

需求:

鍵盤錄入一個整數,表示身上的錢。

如果大於等於100塊,就吃網紅餐廳。

否則,就吃經濟實惠的沙縣小吃。

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        /*需求:鍵盤錄入一個整數,表示身上的錢。
        如果大於等於100塊,就吃網紅餐廳。
        否則,就吃經濟實惠的沙縣小吃。*/

        //分析:
        //1.鍵盤錄入一個整數,表示身上的錢。
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入身上的錢");
        int money = sc.nextInt();

        //2.對錢進行判斷(二選一)
        if(money >= 100){
            System.out.println("吃網紅餐廳");
        }else{
            System.out.println("吃經濟實惠的沙縣小吃");
        }
    }
}

練習--商品付款

需求:

假設,使用者在超市實際購買,商品總價為:600元。

鍵盤錄入一個整數表示使用者實際支付的錢。

如果付款大於等於600,表示付款成功。否則付款失敗。

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        /*需求:
        假設,使用者在超市實際購買,商品總價為:600元。
        鍵盤錄入一個整數表示使用者實際支付的錢。
        如果付款大於等於600,表示付款成功。否則付款失敗。
         */

        //分析:
        //1.鍵盤錄入一個整數表示使用者實際支付的錢。
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個整數表示實際支付的錢");
        int money = sc.nextInt();

        //2.判斷
        if(money >= 600){
            System.out.println("支付成功");
        }else{
            System.out.println("支付失敗");
        }
    }
}

練習--影院選座

需求:

假設某影院收買了100張票,跑的序號為1~100。

其中奇數票號坐左側,偶數票號坐右側。

鍵盤錄入一個整數表示電影票的票號。

根據不同情況,給出不同的提示:

如果票號為奇數,那麼列印坐左邊

如果票號為偶數,那麼列印坐右邊。

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        /*假設某影院收買了100張票,跑的序號為1~100。
        其中奇數票號坐左側,偶數票號坐右側。
        鍵盤錄入一個整數表示電影票的票號。
        根據不同情況,給出不同的提示:
        如果票號為奇數,那麼列印坐左邊
        如果票號為偶數,那麼列印坐右邊。
         */

        //分析:
        //1.鍵盤錄入一個整數表示電影票的票號。
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個票號");
        int ticket = sc.nextInt();
        //只有當ticket在0~100之間,才是真是有效的票
        //if的巢狀
        if(ticket >= 0 && ticket <= 100){
            //2.判斷票號是奇數還是偶數
            if (ticket % 2 == 1) {
                System.out.println("坐左邊");
            } else {
                System.out.println("坐右邊");
            }
        }
    }
}

第三種格式(多條件判斷)

格式:

if (關係表示式1) {
    語句體1;
} else if (關係表示式2) {
    語句體2;
}
 ...
  else {
      語句體 n + 1;
  }

執行流程:

  1. 首先計算關係表示式1的值
  2. 如果為true就執行語句體1;如果為false就計算關係表示式2的值
  3. 如果為true就執行語句體2;如果為false就計算關係表示式3的值
  4. ......
  5. 如果關係表示式結果都為false,就執行語句體n+1。

練習--小明的禮物

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        /*
        根據不同的分數送不同的禮物。
        95~100分,送一輛腳踏車
        90~94分,遊樂場玩一天
        80~89分,送一個變形金剛
        80分一下,揍一頓。
         */

        //分析:
        //1.鍵盤錄入小明的成績
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個整數表示小明的成績");
        int score = sc.nextInt();
        //2.根據不同的成績,給出不同的獎勵
        if(score >= 0 && score <= 100) {
            if (score >= 95 && score <= 100) {
                System.out.println("送一輛腳踏車");
            } else if (score >= 90 && score <= 94) {
                System.out.println("遊樂場玩一天");
            } else if (score >= 80 && score <= 89) {
                System.out.println("送一個變形金剛");
            } else {
                System.out.println("揍一頓");
            }
        }else {
            System.out.println("當前錄入的成績不合法");
        }
    }
}

練習--商品的價格

需求:

商場都會有VIP的會員制,根據不同的會員會有不同的折扣。

假設商品總價為1000。

鍵盤錄入會員級別,並計算出實際支付的錢。

會員1級:打9折。

會員2級:打8折。

會員3級:打7折。

非會員:不打折。

import java.util.Scanner;

public class Test7 {
    public static void main(String[] args) {
        /*
        需求:
        商場都會有VIP的會員制,根據不同的會員會有不同的折扣。
        假設商品總價為1000。
        鍵盤錄入會員級別,並計算出實際支付的錢。
        會員1級:打9折。
        會員2級:打8折。
        會員3級:打7折。
        非會員:不打折。
         */


        //分析:
        //1.定義變數記錄總價
        int price = 1000;
        //2.鍵盤錄入會員的級別
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入會員的級別");
        int vip = sc.nextInt();
        //3.根據級別來計算實際要支付的錢
        if(vip == 1){
            System.out.println("實際支付的錢為" + (price * 0.9));
        }else if(vip == 2){
            System.out.println("實際支付的錢為" + (price * 0.8));
        }else if(vip == 3){
            System.out.println("實際支付的錢為" + (price * 0.7));
        }else{
            System.out.println("實際支付的錢為" + price);
        }
    }
}

switch語句

switch

格式:

switch(表示式) {
    case 值1:
        語句體1;
        break;
    case 值2:
        語句體2;
        break;
    ...
    default:
        語句體n+1;
        break;
}

執行流程:

  1. 首先計算表示式的值。
  2. 依次和case後面的值進行比較,如果有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
  3. 如果所有的case後面的值和表示式的值都不匹配,就會執行default裡面的語句體,然後結束整個switch語句。

格式說明:

  1. 表示式: (將要匹配的值)取值為byte、short. int、 char。JDK5以後可以是列舉,JDK7以後可以是String。
  2. case: 後面跟的是要和表示式進行比較的值(被匹配的值)。
  3. break: 表示中斷,結束的意思,用來結束switch語句。
  4. default: 表示所有情況都不匹配的時候,就執行該處的內容,和if語句的else相似。
  5. case後面的值只能是字面量,不能是變數
  6. case給出的值不允許重複
//範例:
public class SwitchDemo1 {
    public static void main(String[] args) {
        //蘭州拉麵、武漢熱乾麵、北京炸醬麵、陝西油潑面

        //1.定義變數記錄我心裡想吃的面
        String noodles = "蘭州拉麵";

        //2.拿著這個面利用switch跟四種麵條匹配
        switch (noodles){
            case "蘭州拉麵":
                System.out.println("吃蘭州拉麵");
                break;
            case "武漢熱乾麵":
                System.out.println("吃武漢熱乾麵");
                break;
            case "北京炸醬麵":
                System.out.println("吃北京炸醬麵");
                break;
            case "陝西油潑面":
                System.out.println("吃陝西油潑面");
                break;
        }
    }
}

練習--運動計劃

需求:鍵盤錄入星期數,顯示今天的減肥活動。

週一:跑步

週二:游泳

週三:慢走

週四:動感單車

週五:拳擊

週六:爬山

週日:好好吃一頓

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        /*需求:鍵盤錄入星期數,顯示今天的減肥活動。
        週一:跑步
        週二:游泳
        週三:慢走
        週四:動感單車
        週五:拳擊
        週六:爬山
        週日:好好吃一頓
         */

        //分析:
        //1.鍵盤錄入星期數
        Scanner sc = new Scanner(System.in);
        System.out.println("情錄入星期");
        int week = sc.nextInt();
        //2.利用switch語句對星期進行匹配
        switch (week){
            case 1:
                System.out.println("跑步");
                break;
            case 2:
                System.out.println("游泳");
                break;
            case 3:
                System.out.println("慢走");
                break;
            case 4:
                System.out.println("動感單車");
                break;
            case 5:
                System.out.println("拳擊");
                break;
            case 6:
                System.out.println("爬山");
                break;
            case 7:
                System.out.println("好好吃一頓");
                break;
            default:
                System.out.println("沒有這個星期");
                break;
        }
    }
}

switch其他知識點

  • default的位置和省略

    • 位置:default不一定是寫在最下面的,可以寫在任意位置。
    • 省略:default可以省略,語法不會有問題,但是不建議省略。
  • case穿透

    • 就是語句體中沒有寫break導致的。

    • 執行流程:

      首先還是會拿著小括號中表示式的值跟下面每一個case進行匹配。

      如果匹配上了,就會執行對應的語句體,如果此時發現了break,那麼結束整個switch語句。

      如果沒有發現break,那麼程式會繼續執行下一個case的語句體,一直遇到break或者右大括號為止。

    • 使用場景:

      如果多個case的語句體重複了,那麼我們考慮利用case穿透去簡化程式碼。

  • switch新特性

    • switch(表示式) {
          case 值1 -> {
              語句體1;
          }
          case 值2 -> {
              語句體2;
          }
          ...
          default -> {
              語句體n+1;
          }
      }
      

      (大括號內如果只有一行程式碼,可以去掉大括號。)

  • switch和if第三種格式各自的使用場景

    • if的第三種格式:一般用於對範圍的判斷
    • switch:把有限個資料一列舉出來,讓我們任選其一

練習--休息日和工作日

需求:鍵盤錄入星期數,輸出工作日、休息日。

(1-5)工作日,(6-7)休息日。

import java.util.Scanner;

public class Test9 {
    public static void main(String[] args) {
        /*需求:鍵盤錄入星期數,輸出工作日、休息日。
        (1-5)工作日,(6-7)休息日。
         */
        //分析:
        //1.鍵盤錄入星期數
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個整數表示星期");
        int week = sc.nextInt();
        //2.利用switch語句來進行選擇
        switch (week){
            case 1,2,3,4,5 -> System.out.println("工作日");
            case 6,7 -> System.out.println("休息日");
            default -> System.out.println("沒有這個星期");
        }
    }
}

練習--使用者選擇

在實際開發中,如果我們需要在多種情況下選擇其中一個,就可以使用switch語句。

當我們撥打了某些服務電話時,一般都會有按鍵選擇。

假設現在我們撥打了一一個機票預定電話。

電話中語音提示:

1機票查詢

2機票預訂

3機票改簽

4退出服務

其他按鍵也是退出服務。請使用switch模擬該業務邏輯。

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
        /*在實際開發中,如果我們需要在多種情況下選擇其中一個,就可以使用switch語句。
        當我們撥打了某些服務電話時,一般都會有按鍵選擇。
        假設現在我們撥打了一一個機票預定電話。
        電話中語音提示:
        1機票查詢
        2機票預訂
        3機票改簽
        4退出服務
        其他按鍵也是退出服務。請使用switch模擬該業務邏輯。
         */


        //分析:
        //1.鍵盤錄入一個整數表示我們的選擇
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入您的選擇");
        int choose = sc.nextInt();
        //2.根據選擇執行不同的程式碼
        switch (choose){
            case 1 -> System.out.println("機票查詢");
            case 2 -> System.out.println("機票預訂");
            case 3 -> System.out.println("機票改簽");
            default -> System.out.println("退出服務");
        }
    }
}

迴圈結構

迴圈的分類

  • for
  • while
  • do...while

for迴圈

格式:
for (初始化語句;條件判斷語句;條件控制語句){
    迴圈體語句;
}
範例:
for (int i == 1;i <= 10;i++){
    System.out.println("HelloWorld")
}
執行流程:

① 執行初始化語句

② 執行條件判斷語句,看其結果是true還是false

  • 如果是false,迴圈結束
  • 如果是true,執行迴圈體語句

③ 執行條件控制語句

④ 回到②繼續執行條件判斷語句

練習

基礎案例1:輸出HelloWorld

需求:列印5次HelloWorld

public class ForDemo1 {
    public static void main(String[] args) {
        //1.需求:列印5次HelloWorld

        //分析:
        //i 1 ~ 5
        for( int i = 1;i <= 5;i++){
            System.out.println("HelloWoeld");
        }
    }
}

基礎練習2:輸出數字/基礎練習3:倒著輸出數字

需求:列印15/列印51

public class Test11 {
    public static void main(String[] args) {
        //需求1:列印1~5
        //分析:
        //開始條件:1
        //結束條件:5
        for(int i = 1;i <= 5;i++){
            System.out.println(i);
        }

        //需求2:列印5~1
        //分析:
        //開始條件:5
        //結束條件:1
        for (int i = 5; i >= 1; i--) {
            System.out.println(i);
        }
    }
}

案例4:斷線重連

在實際開發中,需要重複執行的程式碼,會選擇迴圈實現。

比如:玩遊戲的時候,如果網不好那麼會經常斷線重連。那麼斷線重連這個業務邏輯就需要重複執行。

假設現在公司要求,斷線重連的業務邏輯最多隻寫5次。

請用程式碼實現。

備註:斷線重連的業務邏輯可以用輸出語句替代。

public class Test12 {
    public static void main(String[] args) {
        /*在實際開發中,需要重複執行的程式碼,會選擇迴圈實現。
        比如:玩遊戲的時候,如果網不好那麼會經常斷線重連。那麼斷線重連這個業務邏輯就需要重複執行。
        假設現在公司要求,斷線重連的業務邏輯最多隻寫5次。
        請用程式碼實現。
        備註:斷線重連的業務邏輯可以用輸出語句替代。
         */

        //分析:
        //迴圈的次數5次
        //開始條件:1
        //結束條件:5

        for(int i = 1;i <= 5;i++){
            System.out.println("第" + i + "次執行斷線重連的業務邏輯");
        }
    }
}

案例5:求和

需求:在實際開發中,如果要獲取一個範圍中的每一個資料時,也會用到迴圈。

比如:求1-5之間的和

public class Test13 {
    public static void main(String[] args) {
        /*需求:在實際開發中,如果要獲取一個範圍中的每一個資料時,也會用到迴圈。
        比如:求1-5之間的和
         */

        //分析:
        //1.迴圈1~5得到裡面的每一個數字
        //開始條件:1
        //結束條件:5
        //用來進行累加
        int sum = 0;
        for(int i = 1;i <= 5;i++){
            sum = sum + i;//或sum +=i;
        }
        System.out.println(sum);//當迴圈結束之後,表示已經把1~5累加到變數sum當中
        //擴充套件小點:
        //1.求和的變數不能定義在迴圈的裡面,因為變數只在所屬的大括號裡有效
        //2.如果我們把變數定義在迴圈的裡面,那麼當前變數只能在本次迴圈中有效。
        //當本次迴圈結束之後,變數就會在記憶體中消失。
        //第二次迴圈開始的時候,又會重新定義一個新的變數。
        //結論:如果以後我們要寫累加求和的變數。可以吧變數定義在迴圈的外面。
    }
}

案例6:求和

需求:在實際開發中,如果要獲取一個範圍中的每-個資料時,會用到迴圈。

但是此時,大多情況下,不會獲取所有的資料,而是獲取其中符合要求的資料。

此時就需要迴圈和其他語句結合使用了。

比如:求1-100之間的偶數和

public class Test14 {
    public static void main(String[] args) {
        /*需求:在實際開發中,如果要獲取一個範圍中的每-個資料時,會用到迴圈。
        但是此時,大多情況下,不會獲取所有的資料,而是獲取其中符合要求的資料。
        此時就需要迴圈和其他語句結合使用了。
        比如:求1-100之間的偶數和
         */

        //分析:
        //1.獲取1~100之間的每個數
        int sum = 0;
        for (int i = 0; i <= 100; i++) {
            //2.累加求和(先判斷,再求和)
            if(i % 2 == 0){
                sum += i;
            }
        }
        //列印sum
        System.out.println(sum);
    }
}

案例7:統計滿足條件的數字

需求:鍵盤錄入兩個數字,表示一個範圍。

統計這個範圍中。

既能被3整除,又能被5整除數字有多少個?

import java.util.Scanner;

public class Test15 {
    public static void main(String[] args) {
        /*需求:鍵盤錄入兩個數字,表示一個範圍。
        統計這個範圍中。
        既能被3整除,又能被5整除數字有多少個?
         */

        //分析:
        //1.鍵盤錄入兩個數字
        Scanner sc = new Scanner(System.in);
        System.out.println("請錄入一個數字表示範圍的開始");
        int statr = sc.nextInt();
        System.out.println("請錄入一個數字表示範圍的結束");
        int end = sc.nextInt();

        //統計變數
        //簡單理解:統計符合要求的數字的個數
        int count = 0;

        //2.利用迴圈獲取這個範圍中的每一個數字
        //開始條件:start
        //結束條件:end
        for (int i = statr; i <= end; i++) {
            //3.對每一個數字進行判斷,統計有多少歌滿足要求的數字
            if (i % 3 == 0 && i % 5 == 0){
                count++;
            }
        }
        System.out.println(count);
    }
}

while迴圈

格式:
初始化語句;
while(條件判斷語句){
    迴圈體語句;
    條件控制語句;
}
  • 初始化語句只執行依次
  • 判斷語句為true,迴圈繼續
  • 判斷語句為false,迴圈結束
練習

需求:利用while迴圈列印1~100

public class WhileDemo1 {
    public static void main(String[] args) {
        //需求:利用while迴圈列印1~100
        //分析:
        //開始條件:1
        //結束條件:100

        int i = 1;
        while(i <= 100){
            System.out.println(i);
            i++;
        }
    }
}

for和while的對比

➢相同點:執行規則都是一樣的

for和while的區別:

➢for迴圈中, 控制迴圈的變數,因為歸屬for迴圈的語法結構中,在for迴圈結束後,就不能再次被訪問到了

➢while迴圈中,控制迴圈的變數,對於while迴圈來說不歸屬其語法結構中,在while迴圈結束後,該變數還可以繼續使用


for:

for(int i = 0;i < 4;i++){
    System.out.println(i);
}

while:

int i = 0;
while(i < 4){
    i++;
}
System.out.println(i);

for和while的區別:

➢for迴圈中:知道迴圈次數或者迴圈的範圍

➢while迴圈:不知道迴圈的次數和範圍,只知道迴圈的結束條件。

練習

案例1:列印摺紙的次數

需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。

請問,我摺疊多少次,可以折成珠穆朗瑪峰的高度?

public class Test16 {
    public static void main(String[] args) {
        /*需求:世界最高山峰是珠穆朗瑪峰(8844.43米=8844430毫米),假如我有一張足夠大的紙,它的厚度是0.1毫米。
        請問,我摺疊多少次,可以折成珠穆朗瑪峰的高度?
         */

        //分析:每一次摺疊紙張的厚度都是原先的兩倍
        //1.定義一個變數用來記錄山峰的高度
        double height = 8844430;
        //2.定義一個變數用來記錄紙張的初始厚度
        double paper = 0.1;
        //3.定義一個變數用來統計次數
        int count = 0;
        //4.迴圈摺疊紙張,只要紙張的厚度小於等於山峰的高度,那麼迴圈就繼續
        //每摺疊一次,統計次數就要++
        while(paper <= height){
            paper *= 2;
            count++;
        }
        System.out.println(count);
    }
}

案例2:迴文數

需求:給你一個整數X。如果x是一個迴文整數,列印true,否則,返回false。

解釋:迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

(例如,121是迴文,而123不是。)

import java.util.Scanner;

public class Test17 {
    public static void main(String[] args) {
        /*需求:給你一個整數X。如果x是一個迴文整數,列印true,否則,返回false。
         解釋:迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
         (例如,121是迴文,而123不是。)
         */
        
        //鍵盤錄入
        System.out.println("請輸入一個整數");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int temp = x;
        int num = 0;
        while(x != 0){//當x不為0時,結束迴圈
            int ge = x % 10;//取個位數
            x = x / 10;//x由n位數變為n-1位數,用於進入下一個迴圈
            num = num * 10 + ge;//求倒序後的數
        }
        System.out.println(temp == num);//X==0,temp==num
    }
}

案例3:求商和餘數

需求:給定兩個整數,被除數和除數(都是正數,且不超過int的範圍 )。

將兩數相除,要求不使用乘法、除法和%運算子。

得到商和餘數。

import java.util.Scanner;

public class Test18 {
    public static void main(String[] args) {
        /*需求:給定兩個整數,被除數和除數(都是正數,且不超過int的範圍 )。
        將兩數相除,要求不使用乘法、除法和%運算子。
        得到商和餘數。
         */
        //分析:
        //被除數 / 除數 = 商 ... 餘數
        //1.鍵盤錄入
        System.out.println("請輸入被除數");
        Scanner sc = new Scanner(System.in);
        int dividend = sc.nextInt();
        System.out.println("請輸入除數");
        int divisor = sc.nextInt();
        //2.定義一個變數用來統計相減了多殺次
        int count = 0;
        //3.迴圈 while
        //在迴圈中,不斷的用被除數 - 除數
        //只要被除數是大於等於除數的,那麼就一直迴圈
        while(dividend >= divisor){
            dividend -= divisor;
            count++;//減一次,統計變數自增一次
        }
        //當迴圈結束之後count變數記錄的就是商
        System.out.println("商為:" + count);
        //當迴圈結束之後dividend變數記錄的就是餘數
        System.out.println("餘數為:" + dividend);
    }
}

do...while迴圈

格式:
初始化語句;
do{
    迴圈體語句;
    條件控制語句;
}while(條件判斷語句);
特點:

先執行後判斷

相關文章