Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java while 和 do...while循環(huán)

在本教程中,我們將借助示例來學(xué)習(xí)如何在Java中使用while和do...while循環(huán),并且還將學(xué)習(xí)while循環(huán)在計算機編程中的工作方式

在計算機編程中,循環(huán)用于重復(fù)特定的代碼塊,直到滿足特定條件(測試表達式為false)為止。例如,

想象一下,我們需要在屏幕上打印一個句子50次。好吧,我們可以通過使用print語句50次(不使用循環(huán))來做到這一點。您需要打印一百萬次句子怎么樣?您需要使用循環(huán)。使用循環(huán),我們可以只編寫一次print語句,然后運行任意次數(shù)。

這只是一個簡單的示例,顯示了循環(huán)在計算機編程中的重要性。Java中有3種循環(huán)類型:for 循環(huán),while循環(huán)和do-while循環(huán)。

Java while循環(huán)

Java 中 while循環(huán)的語法為:

while (testExpression) {
    // while循環(huán)體中的代碼
}

while循環(huán)如何工作?

在以上語法中,括號內(nèi)的測試表達式(testExpression)為布爾表達式。如果測試表達式(testExpression)的計算結(jié)果為true,

  • while循環(huán)內(nèi)的語句將被執(zhí)行。

  • 然后,再次評估測試表達式(testExpression)。

這個過程一直進行到測試表達式被評估為false為止。如果測試表達式的計算結(jié)果為false,

  • 則while循環(huán)被終止。

While循環(huán)流程圖

Java while循環(huán)流程圖
While循環(huán)的工作

示例1:while循環(huán)

//程序打印行10次
class Loop {
    public static void main(String[] args) {
      
        int i = 1;
	   
        while (i <= 10) {
            System.out.println("Line " + i);
            ++i;
        }
    }
}

輸出

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10

在上面的示例中,我們有一個測試表達式(i <= 10)。它檢查i的值是否小于或等于10。

最初,此處i的值為1。因此,測試表達式(testExpression)的計算結(jié)果為true。因此,將執(zhí)行while循環(huán)內(nèi)的print語句。

請注意while循環(huán)內(nèi)的語句

 ++i;

該語句在每次迭代中將i值增加1。經(jīng)過10次迭代后,i的值為11。然后測試表達式(i <= 10)為false,求和while循環(huán)終止。

要了解有關(guān)測試表達式及其評估方式的更多信息,請訪問Java 關(guān)系運算符Java 邏輯運算符。

示例2:Java while循環(huán)

//編程以查找1到100之間的自然數(shù)之和。
class AssignmentOperator {
    public static void main(String[] args) {
      
        int sum = 0, i = 100;
	   
        while (i != 0) {
            sum += i;     // 等同于 sum = sum + i;
            --i;
        }
	   
        System.out.println("Sum = " + sum);
    }
}

輸出

Sum = 5050

在這里,我們有兩個名為sum,i的變量,其初始值分別為0和100。

在while循環(huán)的每次迭代中,

  • 為sum變量分配值:sum + i

  • i的值減少1

循環(huán)一直進行到的值i等于0 為止。

1st 重復(fù): i = 100, sum = 0+100 = 100, 同時 --i = 99
2nd 重復(fù): i = 99, sum = 100+99 = 199, 同時 --i = 98
3rd 重復(fù): i = 98, sum = 199+98 = 297, 同時 --i = 97
... .. ...
... .. ...
99th 重復(fù): i = 2, sum = 5047+2 = 5049, 同時 --i = 1
100th 重復(fù): i = 1, sum = 5049+1 = 5050, 同時 --i = 0

Java do... while循環(huán)

do...while循環(huán)類似于while循環(huán),但是有個關(guān)鍵區(qū)別,在于在檢查測試表達式之前,會執(zhí)行循環(huán)主體一次。

這是do...while循環(huán)的語法。

do {
   // do...while循環(huán)體內(nèi)的代碼
} while (testExpression);

do... while循環(huán)如何工作?

do...while循環(huán)主體執(zhí)行一次(在檢查測試表達式之前)。只有這樣,測試表達式才會被檢查。

如果測試表達式被計算為true,則執(zhí)行循環(huán)體中的代碼,并再次計算測試表達式。這個過程一直進行下去,直到測試表達式被計算為false為止。

當測試表達式為時false,do..while循環(huán)終止。

do ... while循環(huán)流程圖

Java中的while循環(huán)流程圖
do ... while循環(huán)的工作流程圖

示例3:do ... while循環(huán)

下面的程序計算用戶輸入的數(shù)字總和,直到用戶輸入0。

為了接受用戶的輸入,我們使用了Scanner對象。要了解更多信息Scanner,請訪問Java Scanner。

import java.util.Scanner;

class Sum {
    public static void main(String[] args) {
	   
        Double number, sum = 0.0;
        //創(chuàng)建一個Scanner類的對象
        Scanner input = new Scanner(System.in);

        do {

            //接受用戶的輸入
            System.out.print("輸入一個數(shù)字: ");
            number = input.nextDouble();
            sum += number;
        } while (number != 0.0);  //測試表達
	   
        System.out.println("Sum = " + sum);
    }
}

輸出

輸入一個數(shù)字: 2.5
輸入一個數(shù)字: 23.3
輸入一個數(shù)字: -4.2
輸入一個數(shù)字: 3.4
輸入一個數(shù)字: 0
Sum = 25.0

無限循環(huán)

在使用循環(huán)時,我們應(yīng)始終小心。 這是因為如果我們錯誤地設(shè)置了測試表達式,使其永遠不會為false,則while和do ... while循環(huán)將永遠運行。

這就是所謂的無限while和do...while循環(huán)。例如,

//無限while循環(huán)
while (true) {
   //while循環(huán)主體
}

再舉一個實例

//無限while循環(huán)
int i = 100;
while (i == 100) {
   System.out.print("Hey!");
}

無限do...while循環(huán)的工作方式與while循環(huán)類似。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清