從零開始學Java之while與do-while迴圈該怎麼用?

語言: CN / TW / HK

theme: healer-readable

作者:孫玉昌,暱稱【一一哥】,另外【壹壹哥】也是我哦

CSDN部落格專家、萬粉博主、阿里雲專家博主、掘金優質作者

前言

在上一篇文章中,壹哥給大家講解了迴圈的概念,並重點給大家講解了for迴圈的使用。但在Java中,除了for迴圈之外,還有while、do-while、foreach等迴圈形式。今天壹哥就再用一篇文章,給大家講解while迴圈的使用。

------------------------------前戲已做完,精彩即開始----------------------------

全文大約【2000】 字,不說廢話,只講可以讓你學到技術、明白原理的純乾貨!本文帶有豐富案例及配圖視訊,讓你更好地理解和運用文中的技術概念,並可以給你帶來具有足夠啟迪的思考......

一. while迴圈

1. 基本語法

while迴圈的基本語法如下所示:

while(迴圈條件){ //迴圈體 }

while迴圈屬於是一種 ”當型“的迴圈結構,當迴圈條件為true,迴圈體就會執行,不滿足條件,迴圈體一次也不會執行。所以在while迴圈中,當執行到一定的程度後,迴圈條件要變成false,否則就會變成”死迴圈“。死迴圈會導致CPU被100%佔用,使用者會感覺電腦執行緩慢,所以我們要避免編寫死迴圈程式碼。另外如果迴圈條件的邏輯寫得有問題,也可能會造成意料之外的結果。

大家還要注意,在while迴圈中,也是可以進行巢狀其他迴圈的!

2. 執行順序

根據while迴圈的基本語法,壹哥給大家梳理一下它的執行順序:

  1. 如果while迴圈裡的條件為true,則執行迴圈體;
  2. 迴圈體執行完畢後,會再次判斷迴圈條件......;
  3. 直到迴圈條件為false,就結束迴圈。

3. 程式碼案例

接下來我們就通過幾個案例來學習while迴圈的使用。

3.1 案例一

需求:用while迴圈列印100遍“跟壹壹哥學Java”

/** * @author 一一哥Sun */ public class Demo05 { public static void main(String[] args) { // while迴圈 //列印100遍“跟壹壹哥學Java” int i = 0; while (i < 100) { System.out.println("跟壹壹哥學Java"+i); //注意要更改i的值,否則條件就用於為真,這就成了死迴圈了 i++; } } }

3.2 案例二

需求:用while迴圈計算1-100的累加和

/** * @author 一一哥Sun */ public class Demo05 { public static void main(String[] args) { // while迴圈 //計算1~100的和 int j = 1; int sum = 0; while(j < 101){ sum = sum + j; j++; } System.out.println(sum); } }

3.3 擴充套件案例

需求:計算一個數是幾位數?

實現思路:如果我們要想實現這個需求,可以將該數迴圈除以10,並用一個數字記錄一共運算了幾次。

/** * @author 一一哥Sun */ public class Demo06 { public static void main(String[] args) { // while迴圈 // 計算一個數是幾位數? 實現思路:將該數迴圈除以10,記錄運算了幾次 int num = 12345; int temp = num; if (num == 0) { System.out.println(num + "是1位數"); } else { // 定義一個變數,用於儲存迴圈的次數 int count = 0; while (num != 0) { // 將這個數迴圈除以10 num = num / 10; // 每次迴圈次數+1 count++; } System.out.println(temp + "是" + count + "位數"); } } }

二. do-while迴圈

對while迴圈而言,如果不滿足條件,就不能進入迴圈。但有時我們需要即使不滿足條件,也要至少執行一次,這時就可以考慮使用do-while迴圈了。do…while迴圈和while迴圈功能相似,不同的是,do…while迴圈至少會執行一次。

1. 基本語法

do-while迴圈的基本語法如下:

do{ //迴圈體 }while(迴圈條件);

do-while迴圈屬於是一種 ”直到型“的迴圈結構。因為迴圈條件是在迴圈體的後面,所以迴圈體在判斷迴圈條件之前已經執行一次了。如果迴圈條件的值為true,則迴圈體會一直執行,直到迴圈條件的值為false,就結束迴圈。

大家注意:在do-while迴圈中,也是可以進行巢狀其他迴圈的!

2. 執行順序

根據do-while迴圈的基本語法,壹哥給大家梳理一下它的執行順序:

  1. 先執行一次迴圈體;
  2. 如果while迴圈裡的條件為true,則繼續執行迴圈體;
  3. 當迴圈體執行完畢後,會再次判斷迴圈條件......;
  4. 直到迴圈條件為false,就結束迴圈。

3. 程式碼案例

3.1 案例一

需求:用do-while迴圈列印100遍"跟一一哥學程式設計"。

/** * @author 一一哥Sun */ public class Demo06 { public static void main(String[] args) { // do-while迴圈 // 案例:列印100遍"跟一一哥學程式設計" int i = 1; do { //迴圈體至少會執行一次 System.out.println("跟一一哥學程式設計"+i); //更改i變數的值 i++; } while (i <= 100); } }

3.2 案例二

需求:學生根據老師的評語,決定是否繼續敲程式碼,直到測評為ok,就結束。

/** * @author 一一哥Sun */ public class Demo06 { public static void main(String[] args) { // do-while迴圈 //案例:學生根據老師的評語,是否繼續敲程式碼,直到測評結果為ok才結束。 Scanner sc = new Scanner(System.in); String result; do{ System.out.println("敲程式碼ing...你看我的程式碼怎麼樣???"); System.out.println("評價:"); //獲取螢幕上輸入的文字內容 result = sc.next(); }while(!result.equals("ok")); } }

------------------------------正片已結束,來根事後煙----------------------------

三. 結語

至此,壹哥就把while和do-while兩種迴圈的使用給大家講解完畢了,現在你學會了嗎?那麼兩者之間有什麼區別呢?

1. while與do-while的區別

這裡壹哥while與do-while迴圈的區別,給大家簡單總結一下:

  • 語法格式的區別:

  • 執行次序不同;
  • 當初始迴圈條件不滿足時,while迴圈一次都不會執行;do-while迴圈至少會執行一次。

2. 三種迴圈的對比

我們現在已經把for、while、do-while迴圈都學完了,它們三者之間又有哪些區別呢?

2.1 從執行順序來看

  • for、while:先判斷,後執行;
  • do-while:先執行,後判斷;

2.2 從適用場景來看

  • 當迴圈次數確定時,一般使用for迴圈;
  • 迴圈次數不確定時,一般使用while或do-while迴圈。

以上這些區別,壹哥希望大家可以記住哦。如果你獨自學習覺得有很多困難,也可以加入壹哥的學習互助群,大家一起交流學習。

四. 配套視訊

如果你不習慣閱讀技術文章,或是對文中的技術概念不能很好地理解,可以來看看壹哥幫你篩選出的視訊教程。與本文配套的Java學習視訊,連結如下:

https://player.bilibili.com/player.html?bvid=BV1FK4y1x7Ny&p=20&page=20

五. 今日作業

1. 第一題

用while迴圈計算10的階乘結果。

2. 第二題

使用do-while迴圈,列印輸出10~100之間所有能同時被5和9整除的整數。