C語言中文網 目錄

Java while和do whlie語句

循環也是程序中的重要流程結構之一,適用于需要重復一段代碼直到滿足特定條件為止的情況。所有流行的編程語言中都有循環語句。Java 中采用的循環語句與 C 中的循環語句相似,主要有 while、do…while、for 和 foreach。本文主要介紹 while 和 do…while。

while 語句

while 循環語句可以在一定條件下重復執行一段代碼。該語句需要判斷一個測試條件,如果該條件為真,則執行循環語句(循環語句可以是一條或多條),否則跳出循環。

while 循環語句的語法結構如下:
while(條件表達式)
{
    語句塊;
}

其中語句塊中的代碼可以是一條或者多條語句,而條件表達式是一個有效的 boolean 表達式,它決定了是否執行循環體。當條件表達式的值為 true 時,就執行大括號中的語句塊。

執行完畢,再次檢查表達式是否為 true,如果還為 true,則再次執行大括號中的代碼,否則就跳出循環,執行 while 循環之后的代碼。圖 1  表示了while 循環語句的執行流程。


圖1  while 循環語句執行流程圖

例 1

使用 while 語句計算 10 的階乘,其具體代碼如下所示。
public static void main(String[] args)
{
    int i=1;
    int n=1;
    while(i<=10)
    {
        n=n*i;
        i++;
    }
    System.out.println("10的階乘結果為:"+n);
}

在上述代碼中,定義了兩個變量 i 和 n,循環每執行一次 i 值就加 1,判斷 i 的值是否小于等于 10,并利用 n=n*i 語句來實現階乘。當 i 的值大于 10 之后,循環便不再執行并退出循環。

運行程序,執行的結果如下所示:
10 的階乘結果為:3628800

do…while 語句

do…while 循環語句也是 Java 中運用廣泛的循環語句,它由循環條件和循環體組成,但它與 while 語句略有不同。do…while 循環語句的特點是先執行循環體,然后判斷循環條件是否成立。

do…while 語句的語法格式如下:
do
{
    語句塊;
}while(條件表達式);

以上語句的執行過程是,首先執行一次循環操作,然后再判斷 while 后面的條件表達式是否為 true,如果循環條件滿足,循環繼續執行,否則退出循環。while 語句后必須以分號表示循環結束,其運行流程如圖 2 所示。


圖2  do…while 循環語句的執行流程
注意:do…while 語句與 while 語句唯一的區別在于,不管表達式的結果為真還是為假,循環語句至少執行一次。因此 do…while 循環適合于至少執行一次循環體的情況。

例 2

編寫一個程序,計算 10 的階乘。使用 do…while 循環的實現代碼如下所示。
public static void main(String[] args)
{
    int number=1,result=1;
    do
    {
        result*=number;
        number++;
    }while (number<=10);
    System.out.print("10階乘結果是:"+result);
}

程序運行后輸出結果如下:
10 階乘結果是:3628800

例 3

在一個圖書系統的推薦圖書列表中保存了 50 條信息,現在需要讓它每行顯示 10 條,分 5 行進行顯示。下面使用 do…while 循環語句來實現這個效果,其具體代碼如下所示。
public static void main(String[] args)
{
    int bookIndex=1;
    do
    {
        System.out.print(bookIndex+"\t");
        if(bookIndex%10==0)
            System.out.println();
        bookIndex++;
    }while(bookIndex<51);
}

在上述代碼中, 聲明一個變量 bookIndex 用來保存圖書的索引,該變量賦值為 1 表示從第一本開始。在 do…while 循環體內,首先輸出了 bookIndex 的值,然后判斷 bookIndex 是否能被 10 整除,如果可以則說明當前行已經輸出 10 條,用 System.out.println() 語句輸出了一個換行符。之后使 bookIndex 加 1,相當于更新當前的索引。最后在 while 表達式中判斷是否超出循環的范圍,即 50 條以內。

運行程序,執行的結果如下所示。
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50

提示

while 循環和 do…while 循環的相同處是:都是循環結構,使用 while(循環條件) 表示循環條件,使用大括號將循環操作括起來;不同處如下。
  • 語法不同:與 while 循環相比,do…while 循環將 while 關鍵字和循環條件放在后面,而且前面多了 do 關鍵字,后面多了一個分號。
  • 執行次序不同:while 循環先判斷,再執行。do…while 循環先執行,再判斷。
  • 一開始循環條件就不滿足的情況下,while 循環一次都不會執行,do…while 循環則不管什么情況下都至少執行一次。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo