更新時(shí)間:2020-04-02 16:24:41 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4702次
while循環(huán)語(yǔ)句
while語(yǔ)句也稱條件判斷語(yǔ)句,它的循環(huán)方式為利用一個(gè)條件來(lái)控制是否要繼續(xù)反復(fù)執(zhí)行這個(gè)語(yǔ)句。
語(yǔ)法如下:
while(條件表達(dá)式){
執(zhí)行語(yǔ)句
}
條件表達(dá)式:這是用于控制循環(huán)的條件。例如count<100。
循環(huán)體:這是條件表達(dá)式成立的情況下,執(zhí)行的程序代碼。
while循環(huán)語(yǔ)句的執(zhí)行過(guò)程,如圖1所示。

當(dāng)條件表達(dá)式的返回值為真時(shí),則執(zhí)行循環(huán)體中的語(yǔ)句,當(dāng)執(zhí)行完循環(huán)體中的語(yǔ)句后,重新判斷條件表達(dá)式的返回值,直到表達(dá)式返回的結(jié)果為假時(shí),退出循環(huán)。
例 在項(xiàng)目中創(chuàng)建類GetSum,在主方法中通過(guò)while循環(huán)將整數(shù)1~10相加,并將結(jié)果輸出。
publicclass GetSum { // 創(chuàng)建類
publicstaticvoidmain(String args[]) { // 主方法
int x = 1; // 定義int型變量x,并賦給初值
int sum = 0; // 定義變量用于保存相加后的結(jié)果
while (x <= 10) {
sum = sum + x; // while循環(huán)語(yǔ)句當(dāng)變量滿足滿足條件表達(dá)式式,則執(zhí)行循環(huán)體語(yǔ)句
x++;
}
System.out.println("sum= " + sum); // 將變量sum輸出
}
}
運(yùn)行的結(jié)果如圖2所示。

注意:初學(xué)者經(jīng)常犯的一個(gè)錯(cuò)誤就是在while表達(dá)式的括號(hào)后加“;”,如:
while(x = = 5);
System.out.println("x的值為5");
這時(shí)程序會(huì)認(rèn)為要執(zhí)行一條空語(yǔ)句,而進(jìn)入無(wú)限循環(huán)。Java編譯器又不會(huì)報(bào)錯(cuò)??赡軙?huì)浪費(fèi)很多時(shí)間去調(diào)試,應(yīng)注意這個(gè)問題。
do…while循環(huán)語(yǔ)句
do…while循環(huán)語(yǔ)句與while循環(huán)語(yǔ)句類似。它們之間的區(qū)別是while語(yǔ)句為先判斷條件是否成立再執(zhí)行循環(huán)體,而do…while循環(huán)語(yǔ)句則先執(zhí)行一次循環(huán)后,再判斷條件是否成立。也就是說(shuō)do…while循環(huán)語(yǔ)句中大括號(hào)中的程序段至少要被執(zhí)行一次。
語(yǔ)法:
do
{
執(zhí)行語(yǔ)句
}
while(條件表達(dá)式);
說(shuō)明:do...while語(yǔ)句與while語(yǔ)句的一個(gè)明顯的區(qū)別是do…while語(yǔ)句在結(jié)尾處多了一個(gè)分號(hào)(;)。
根據(jù)do…while循環(huán)語(yǔ)句的語(yǔ)法特點(diǎn)總結(jié)出do…while循環(huán)語(yǔ)句的執(zhí)行過(guò)程如圖1所示。

do-while語(yǔ)句的執(zhí)行步驟為:
第一步:執(zhí)行循環(huán)體中的語(yǔ)句;
第二部:判斷條件表達(dá)式的值;如果該值為true,就跳轉(zhuǎn)到第一步。否則退出循環(huán)體,繼續(xù)執(zhí)行程序的其它代碼。
例 使用Do-While循環(huán)求100以內(nèi)所有奇數(shù)的和。
ublic classOddNumberForDoWhile {
publicstatic voidmain(String[] args) {
intnum = 1; // 定義循環(huán)控制變量
intsum = 0; // 定義總和變量
do{
sum += num; // 等價(jià)于sum=sum+num;
num += 2; //等價(jià)于num=num+2;
} while(num <= 100);
System.out.println("100以內(nèi)所有奇數(shù)的和是:" + sum);
}
}
運(yùn)行結(jié)果如圖4.19所示。

例 在項(xiàng)目中創(chuàng)建類Cycle,在主方法中編寫如下代碼,通過(guò)本實(shí)例可看出while語(yǔ)句與do…while語(yǔ)句的區(qū)別。
publicclass WhilePK {
publicstatic voidmain(String[] args) {
// While循環(huán)
intnum1 = 50;
while(num1 < 50) {
System.out.println("While循環(huán)被執(zhí)行了");
num1++;
}
//Do-While循環(huán)
intnum2 = 50;
do{
System.out.println("Do-While循環(huán)被執(zhí)行了");
} while(num2 < 50);
}
}
運(yùn)行結(jié)果如圖2所示。

圖2 運(yùn)行結(jié)果
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java while無(wú)限循環(huán)語(yǔ)句”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)