從零開始學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整除的整數。