循環(huán)語(yǔ)句除了for循環(huán)之外還有while和do..while,接下來(lái)我們先來(lái)看一下while循環(huán),首先學(xué)習(xí)while循環(huán)的語(yǔ)法結(jié)構(gòu),如下圖所示:
圖6-29:while循環(huán)語(yǔ)法結(jié)構(gòu)
通過(guò)上圖可以看出while循環(huán)的語(yǔ)法結(jié)構(gòu)非常簡(jiǎn)單,它的執(zhí)行順序以及原理是這樣的,先判斷布爾表達(dá)式的結(jié)果,如果是true,則執(zhí)行循環(huán)體,循環(huán)體結(jié)束之后,再次判斷布爾表達(dá)式的結(jié)果,如果是true,再執(zhí)行循環(huán)體,循環(huán)體結(jié)束之后,再判斷布爾表達(dá)式的結(jié)果,直到結(jié)果為false的時(shí)候,while循環(huán)結(jié)束。如果起初第一次判斷布爾表達(dá)式結(jié)果的時(shí)候就是false,那么while循環(huán)體執(zhí)行次數(shù)就為0了。它的執(zhí)行順序以及原理也可以參見(jiàn)下圖:
圖6-30:while循環(huán)執(zhí)行順序以及原理
通過(guò)while循環(huán)的執(zhí)行原理可以得出while循環(huán)的循環(huán)體執(zhí)行次數(shù)可能是0次,也可能是N次。那么要想使用while循環(huán)實(shí)現(xiàn)一個(gè)死循環(huán),代碼應(yīng)該怎么寫(xiě)呢?
while(true){
System.out.println("死循環(huán)");
}
運(yùn)行結(jié)果就不再給大家展示了,要使用while實(shí)現(xiàn)一個(gè)死循環(huán)是非常簡(jiǎn)單的,讓判斷條件一直為true就可以了。那么使用while循環(huán)實(shí)現(xiàn)輸出1~10應(yīng)該怎么做呢?
int i = 0;
while(i < 10){
i++;
System.out.println("i = " + i);
}
運(yùn)行結(jié)果如下圖所示:
圖6-31:使用while循環(huán)輸出1~10
其實(shí)使用while循環(huán)輸出1~10不止有以上這一種方式,還有其他方式,例如:
int j = 1;
while(j <= 10){
System.out.println("j = " + j);
j++;
}
運(yùn)行結(jié)果如下圖所示:
圖6-32:使用while循環(huán)輸出1~10
當(dāng)然,大家還可以想想有沒(méi)有其它的寫(xiě)法,可以自己寫(xiě)一寫(xiě),例如:
int i = 0;
while(i < 10){
System.out.println("i = " + (++i));
}
再如:
int j = 1;
while(j <= 10){
System.out.println("j = " + j++);
}
使用while循環(huán)計(jì)算1~100所有偶數(shù)的和,應(yīng)該怎么做呢?
int sum = 0;
int i = 0;
while(i <= 100){
if(i % 2 == 0){
sum += i;
}
i++;
}
System.out.println("sum = " + sum);
sum = 0;
int j = 0;
while(j <= 100){
sum += j;
j += 2;
}
System.out.println("sum = " + sum);
運(yùn)行結(jié)果如下圖所示:
圖6-33:while循環(huán)計(jì)算1~100所有偶數(shù)和
實(shí)際上while循環(huán)可以看做是for循環(huán)的另一種變形寫(xiě)法,本質(zhì)上是一樣的,執(zhí)行效率上也是一樣的,硬要說(shuō)它們有什么不同的話,首先while循環(huán)語(yǔ)法結(jié)構(gòu)比f(wàn)or更簡(jiǎn)單,for循環(huán)的計(jì)數(shù)器比while更清楚一些,另外for循環(huán)的計(jì)數(shù)器對(duì)應(yīng)的變量可以在for循環(huán)結(jié)束之后就釋放掉,但是while循環(huán)的計(jì)數(shù)器對(duì)應(yīng)的變量聲明在while循環(huán)外面,擴(kuò)大了該變量的作用域。總之,不管是for還是while,大家都必須掌握,因?yàn)檫@兩個(gè)循環(huán)使用最多。