dowhlie java_Java while和do whlie语句
循環(huán)也是程序中的重要流程結(jié)構(gòu)之一,適用于需要重復(fù)一段代碼直到滿足特定條件為止的情況。所有流行的編程語(yǔ)言中都有循環(huán)語(yǔ)句。Java 中采用的循環(huán)語(yǔ)句與 C 中的循環(huán)語(yǔ)句相似,主要有 while、do…while、for 和 foreach。本文主要介紹 while 和 do…while。
while 語(yǔ)句
while 循環(huán)語(yǔ)句可以在一定條件下重復(fù)執(zhí)行一段代碼。該語(yǔ)句需要判斷一個(gè)測(cè)試條件,如果該條件為真,則執(zhí)行循環(huán)語(yǔ)句(循環(huán)語(yǔ)句可以是一條或多條),否則跳出循環(huán)。
while 循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下:
while(條件表達(dá)式) { 語(yǔ)句塊; }
其中語(yǔ)句塊中的代碼可以是一條或者多條語(yǔ)句,而條件表達(dá)式是一個(gè)有效的 boolean 表達(dá)式,它決定了是否執(zhí)行循環(huán)體。當(dāng)條件表達(dá)式的值為 true 時(shí),就執(zhí)行大括號(hào)中的語(yǔ)句塊。
執(zhí)行完畢,再次檢查表達(dá)式是否為 true,如果還為 true,則再次執(zhí)行大括號(hào)中的代碼,否則就跳出循環(huán),執(zhí)行 while 循環(huán)之后的代碼。圖 1 表示了 while 循環(huán)語(yǔ)句的執(zhí)行流程。
圖 1? while 循環(huán)語(yǔ)句執(zhí)行流程圖
例 1
使用 while 語(yǔ)句計(jì)算 10 的階乘,其具體代碼如下所示。
public static void main(String[] args) { int i=1; int n=1; while(i<=10) { n=n*i; i++; } System.out.println("10的階乘結(jié)果為:"+n); }
在上述代碼中,定義了兩個(gè)變量 i 和 n,循環(huán)每執(zhí)行一次 i 值就加 1,判斷 i 的值是否小于等于 10,并利用 n=n*i 語(yǔ)句來(lái)實(shí)現(xiàn)階乘。當(dāng) i 的值大于 10 之后,循環(huán)便不再執(zhí)行并退出循環(huán)。
運(yùn)行程序,執(zhí)行的結(jié)果如下所示:
10 的階乘結(jié)果為:3628800
do…while 語(yǔ)句
do…while 循環(huán)語(yǔ)句也是 Java 中運(yùn)用廣泛的循環(huán)語(yǔ)句,它由循環(huán)條件和循環(huán)體組成,但它與 while 語(yǔ)句略有不同。do…while 循環(huán)語(yǔ)句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。
do…while 語(yǔ)句的語(yǔ)法格式如下:
do { 語(yǔ)句塊; }while(條件表達(dá)式);
以上語(yǔ)句的執(zhí)行過(guò)程是,首先執(zhí)行一次循環(huán)操作,然后再判斷 while 后面的條件表達(dá)式是否為 true,如果循環(huán)條件滿足,循環(huán)繼續(xù)執(zhí)行,否則退出循環(huán)。while 語(yǔ)句后必須以分號(hào)表示循環(huán)結(jié)束,其運(yùn)行流程如圖 2 所示。
圖 2? do…while 循環(huán)語(yǔ)句的執(zhí)行流程
注意:do…while 語(yǔ)句與 while 語(yǔ)句唯一的區(qū)別在于,不管表達(dá)式的結(jié)果為真還是為假,循環(huán)語(yǔ)句至少執(zhí)行一次。因此 do…while 循環(huán)適合于至少執(zhí)行一次循環(huán)體的情況。
例 2
編寫(xiě)一個(gè)程序,計(jì)算 10 的階乘。使用 do…while 循環(huán)的實(shí)現(xiàn)代碼如下所示。
public static void main(String[] args) { int number=1,result=1; do { result*=number; number++; }while(number <= 10); System.out.print("10階乘結(jié)果是:"+result); }
程序運(yùn)行后輸出結(jié)果如下:
10 階乘結(jié)果是:3628800
例 3
在一個(gè)圖書(shū)系統(tǒng)的推薦圖書(shū)列表中保存了 50 條信息,現(xiàn)在需要讓它每行顯示 10 條,分 5 行進(jìn)行顯示。下面使用 do…while 循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)這個(gè)效果,其具體代碼如下所示。
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); }
在上述代碼中, 聲明一個(gè)變量 bookIndex 用來(lái)保存圖書(shū)的索引,該變量賦值為 1 表示從第一本開(kāi)始。在 do…while 循環(huán)體內(nèi),首先輸出了 bookIndex 的值,然后判斷 bookIndex 是否能被 10 整除,如果可以則說(shuō)明當(dāng)前行已經(jīng)輸出 10 條,用 System.out.println() 語(yǔ)句輸出了一個(gè)換行符。之后使 bookIndex 加 1,相當(dāng)于更新當(dāng)前的索引。最后在 while 表達(dá)式中判斷是否超出循環(huán)的范圍,即 50 條以內(nèi)。
運(yùn)行程序,執(zhí)行的結(jié)果如下所示。
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 循環(huán)和 do…while 循環(huán)的相同處是:都是循環(huán)結(jié)構(gòu),使用 while(循環(huán)條件) 表示循環(huán)條件,使用大括號(hào)將循環(huán)操作括起來(lái);不同處如下。
語(yǔ)法不同:與 while 循環(huán)相比,do…while 循環(huán)將 while 關(guān)鍵字和循環(huán)條件放在后面,而且前面多了 do 關(guān)鍵字,后面多了一個(gè)分號(hào)。
執(zhí)行次序不同:while 循環(huán)先判斷,再執(zhí)行。do…while 循環(huán)先執(zhí)行,再判斷。
一開(kāi)始循環(huán)條件就不滿足的情況下,while 循環(huán)一次都不會(huì)執(zhí)行,do…while 循環(huán)則不管什么情況下都至少執(zhí)行一次。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的dowhlie java_Java while和do whlie语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java接受blob类型图片_原生JS上
- 下一篇: java数据写入文件方案,Java如何将