Java While循環(huán) do-while循環(huán)用法
循環(huán)語(yǔ)句就是讓計(jì)算機(jī)根據(jù)條件做循環(huán)計(jì)算,在條件滿(mǎn)足時(shí)繼續(xù)循環(huán),條件不滿(mǎn)足時(shí)退出循環(huán)。
Java提供了while條件循環(huán)。它的基本用法是:
while (條件表達(dá)式) { 循環(huán)語(yǔ)句}// 繼續(xù)執(zhí)行后續(xù)代碼
while循環(huán)在每次循環(huán)開(kāi)始前,先會(huì)判斷條件是否成立。如果計(jì)算結(jié)果為true,就把循環(huán)體內(nèi)的語(yǔ)句執(zhí)行一遍,如果計(jì)算結(jié)果為false,那就直接跳到while循環(huán)的末尾,繼續(xù)往下執(zhí)行。
do while循環(huán)的基本結(jié)構(gòu)
do{//循環(huán)體}while(條件);
與while不同的是,do while先不進(jìn)行判斷,直接先將循環(huán)體中的代碼執(zhí)行一遍,然后根據(jù)while中的條件的返回值判斷,如果符合條件,則再一次運(yùn)行循環(huán)體,如果不符合,則執(zhí)行do while外面的代碼
注意:不論是do while還是while循環(huán),他們的本質(zhì)都是相同的,符合條件則執(zhí)行循環(huán)體,不符合則執(zhí)行其他代碼,但是,while后面的小括號(hào)中的是true的時(shí)候,才會(huì)循環(huán)。
舉個(gè)例子,用while循環(huán)來(lái)計(jì)算1到100的累加。
public class Main { public static void main(String[] args) { int sum = 0; // 累加的和,初始化為0 int n = 1; while (n <= 100) { // 循環(huán)條件是n <= 100 sum = sum + n; // 把n累加到sum中 n ++; // n自身加1 } System.out.println(sum); // 5050 }}
執(zhí)行結(jié)果:
5050
值得注意的是while循環(huán)是先判斷循環(huán)條件,再循環(huán),因此,有可能一次循環(huán)都不做。如果循環(huán)條件永遠(yuǎn)滿(mǎn)足,那這個(gè)循環(huán)就變成了死循環(huán)。死循環(huán)將導(dǎo)致100%的CPU占用,用戶(hù)會(huì)感覺(jué)電腦運(yùn)行緩慢,所以要避免編寫(xiě)死循環(huán)代碼。如果循環(huán)條件的邏輯寫(xiě)得有問(wèn)題,也會(huì)造成意料之外的結(jié)果。
下面舉個(gè)例子:
public class Main { public static void main(String[] args) { int sum = 0; int n = 1; while (n > 0) { sum = sum + n; n ++; } System.out.println(n); // -2147483648 System.out.println(sum); }}
執(zhí)行結(jié)果:
-2147483648-1073741824
表面上看,上面的while循環(huán)是一個(gè)死循環(huán),但是,Java的int類(lèi)型有最大值,達(dá)到最大值后,再加1會(huì)變成負(fù)數(shù),結(jié)果,就會(huì)退出while循環(huán)。
小提示
while循環(huán)先判斷循環(huán)條件是否滿(mǎn)足,再執(zhí)行循環(huán)語(yǔ)句;
while循環(huán)可能一次都不執(zhí)行;
編寫(xiě)循環(huán)時(shí)要注意循環(huán)條件,并避免程序進(jìn)入死循環(huán)。
do-while循環(huán)前面一篇介紹了while循環(huán)語(yǔ)句,這里介紹do-while循環(huán)。do-while和while唯一的區(qū)別就是,do-while是先做循環(huán),然后去判斷,而while循環(huán)是先判斷,再去循環(huán)。說(shuō)得有點(diǎn)繞口,在同一個(gè)例子去實(shí)現(xiàn)用while和do-while實(shí)現(xiàn)從1到100的求和。
相關(guān)代碼如下:
package lessons; public class MyClass { public static void main(String[] args) {int a= 1;int sum = 0;while(a <= 100){sum += a;a++;}System.out.println(sum);int x = 1; int sum1 = 0; do{ sum1 += x;x++; }while(x <= 100); System.out.println(sum1);}}
運(yùn)行結(jié)果,發(fā)現(xiàn)兩個(gè)循環(huán)結(jié)果都是5050.自己好好去理解下先循環(huán)再判斷,這是do-while循環(huán)的基本語(yǔ)法。
相關(guān)文章:
1. chat.asp聊天程序的編寫(xiě)方法2. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法3. XML入門(mén)的常見(jiàn)問(wèn)題(二)4. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐5. JavaScrip簡(jiǎn)單數(shù)據(jù)類(lèi)型隱式轉(zhuǎn)換的實(shí)現(xiàn)6. 得到XML文檔大小的方法7. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式8. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能9. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)10. 如何在jsp界面中插入圖片
