詳解Java中的do...while循環(huán)語(yǔ)句的使用方法
對(duì)于while語(yǔ)句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時(shí)候我們需要即使不滿足條件,也至少執(zhí)行一次。
do…while循環(huán)和while循環(huán)相似,不同的是,do…while循環(huán)至少會(huì)執(zhí)行一次。
do {
//代碼語(yǔ)句
}while(布爾表達(dá)式);
請(qǐng)注意,布爾表達(dá)式在循環(huán)的末尾,因此循環(huán)中的語(yǔ)句在測(cè)試布爾值之前已經(jīng)執(zhí)行了一次。
如果布爾表達(dá)(boolean_expression)式評(píng)估結(jié)果為true,則控制跳回到do語(yǔ)句,循環(huán)中的語(yǔ)句再次執(zhí)行。 重復(fù)此過(guò)程,直到布爾表達(dá)式(boolean_expression)評(píng)估結(jié)果為false。
do..while循環(huán)語(yǔ)句也稱為后測(cè)試循環(huán)語(yǔ)句,它的循環(huán)重復(fù)執(zhí)行方式,也是利用一個(gè)條件來(lái)控制是否要繼續(xù)重復(fù)執(zhí)行這個(gè)語(yǔ)句。與while循環(huán)所不同的是,它先執(zhí)行一次循環(huán)語(yǔ)句,然后再去判斷是否繼續(xù)執(zhí)行。

例如,計(jì)算1到100之間所有整數(shù)的和,也可以使用do...while循環(huán)語(yǔ)句實(shí)現(xiàn)。
具體代碼如下:
int sum=0;
int i=1;
do{
sum+=i;
i++;
}while (i<=100);
System.out.println("1到100之間所有整數(shù)的和是: "+sum);
do...while循環(huán)語(yǔ)句執(zhí)行的過(guò)程是:先執(zhí)行一次循環(huán)體,然后再判斷條件表達(dá)式,如果條件表達(dá)式的值為true,則繼續(xù)執(zhí)行,否則跳出循環(huán)。也就是說(shuō),do...while循環(huán)語(yǔ)句中的循環(huán)體至少被執(zhí)行一次。
注意:布爾表達(dá)式在循環(huán)體的后面,所以語(yǔ)句塊在檢測(cè)布爾表達(dá)式之前已經(jīng)執(zhí)行了。 如果布爾表達(dá)式的值為true,則語(yǔ)句塊一直執(zhí)行,直到布爾表達(dá)式的值為false。
示例2. do…while循環(huán)
這是一個(gè)簡(jiǎn)單的java do while循環(huán)示例,用于打印5到10之間的數(shù)字。/
public class JavaDoWhileLoop {
public static void main(String[] args) {
int i = 5;
do {
System.out.println(i);
i++;
} while (i <= 10);
}
}
執(zhí)行上面示例代碼,得到以下結(jié)果:
5
6
7
8
9
10
實(shí)例3 輸出從10開(kāi)始但小于20的數(shù)
public class Test {
public static void main(String args[]){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
示例4. do…while無(wú)限循環(huán)
通過(guò)在do...while循環(huán)中將布爾表達(dá)式使用true值來(lái)創(chuàng)建無(wú)限循環(huán)。下面是一個(gè)簡(jiǎn)單的做java無(wú)限循環(huán)的例子(偽代碼)。
//package com.java.javadowhileloop;
public class DoWhileTrueJava {
public static void main(String[] args) throws InterruptedException {
do {
System.out.println("Start Processing inside do while loop");
// 在指定目錄中查找文件
// 如果找到,則處理它,例如:將文件信息插入數(shù)據(jù)庫(kù)
System.out.println("End Processing of do while loop");
Thread.sleep(5 * 1000); // 暫停5秒,接著執(zhí)行
} while (true);
}
}
請(qǐng)注意,如果在終端中執(zhí)行程序,則可使用Ctrl + C手動(dòng)退出應(yīng)用程序。 如果已在Eclipse IDE中執(zhí)行程序,則會(huì)有一個(gè)紅色按鈕來(lái)終止程序。
do…while與while循環(huán)比較
當(dāng)希望在循環(huán)內(nèi)的語(yǔ)句至少執(zhí)行一次時(shí),則應(yīng)該使用do...while循環(huán)。 否則,使用while循環(huán)總是更好選擇。Java while循環(huán)看起來(lái)比do...while循環(huán)更干凈。
相關(guān)文章
解決java junit單元測(cè)試@Test報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決java junit單元測(cè)試@Test報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
使用Maven創(chuàng)建和管理多模塊項(xiàng)目的詳細(xì)步驟
使用Maven進(jìn)行多模塊項(xiàng)目管理是一種常見(jiàn)的做法,它可以幫助你組織大型項(xiàng)目,使其結(jié)構(gòu)更加清晰,便于維護(hù)和構(gòu)建,以下是使用Maven創(chuàng)建和管理多模塊項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2024-10-10
Java 日期與時(shí)間API相關(guān)用法總結(jié)
這篇文章主要介紹了Java 日期與時(shí)間API相關(guān)用法總結(jié),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-02-02
MyBatis無(wú)縫轉(zhuǎn)MyBatis-plus的基本使用
本文介紹了使用MyBatis-plus來(lái)優(yōu)化MyBatis的使用,包括引入依賴、改造Mapper、實(shí)體類注解使用、Service層方法改造等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
IntelliJ IDEA 中使用jRebel進(jìn)行 Java 熱部署教程圖解
Rebel是一款JAVA虛擬機(jī)插件,它使得JAVA程序員能在不進(jìn)行重部署的情況下,即時(shí)看到代碼的改變對(duì)一個(gè)應(yīng)用程序帶來(lái)的影響。本文通過(guò)圖文并茂的形式給大家介紹了IntelliJ IDEA 中使用jRebel進(jìn)行 Java 熱部署教程圖解,需要的朋友參考下吧2018-04-04
一文帶你熟練掌握J(rèn)ava中的日期時(shí)間相關(guān)類
我們?cè)陂_(kāi)發(fā)時(shí),除了數(shù)字、數(shù)學(xué)這樣的常用API之外,還有日期時(shí)間類,更是會(huì)被經(jīng)常使用,比如我們項(xiàng)目中必備的日志功能,需要記錄異常等信息產(chǎn)生的時(shí)間,本文就帶各位來(lái)學(xué)習(xí)一下相關(guān)的日期時(shí)間類有哪些2023-05-05
簡(jiǎn)單講解奇偶排序算法及在Java數(shù)組中的實(shí)現(xiàn)
這篇文章主要介紹了奇偶排序算法及Java數(shù)組的實(shí)現(xiàn),奇偶排序的時(shí)間復(fù)雜度為O(N^2),需要的朋友可以參考下2016-04-04

