java語言中基本循環結構分爲三類:
1.for
2.while
3.do while
一般情況下,同樣的 "初始條件/判斷語句/循環體語句/步進語句" 時,執行結果相同,如下:
1. for循環:
2. while循環:
3. do while循環:
以上三種運行結果相同,如下:
但是當判斷語句一次都不滿足時,情況又如何呢?
1. for循環:
2. while循環
for和while循環的結果相同,不輸出任何值:
3. do while循環
do while循環結果:
總結:
1. 以上三種循環結構,當判斷語句值爲true的次數大於等於1次時,程序執行次數及結果完全相同;
2. 當判斷語句值爲true的次數爲0時,for和while循環的執行次數爲0,即不執行. 但是do while循環會在未經判斷語句判斷之前,先執行唯一的1次;
關於do while的理解:
這時候會有人問:爲什麼判斷語句至少1次爲ture時,相同情況下三種循環結構執行次數相同. 但一次都不爲true時,do while卻可以執行唯一的1次呢?
實際原理是:for和while循環,從第1次循環開始,即判斷是否可以執行循環體.
而do while循環是不對第1次循環進行判斷的,直接執行第1次後,開始判斷是否可以執行"步進"後的第2次,並不是執行1次後,再開始判斷第1次是否合理!
若三種循環均執行3次,那麼:for和while判斷3次執行3次, do while是執行1次,判斷第2次和第3次並再執行第2/3次;
若三種循環一次都不滿足判斷語句:for和while判斷第1次時不滿足,便不執行. 但do while則是不判斷,執行一次循環體,再判斷步進之後的值是否滿足第2次執行條件,不滿足則不執行第2次,但第1次已無腦執行;
很多書籍及視頻教程中均講解爲:因爲有do 所以至少執行1次,實則不清不楚,容易混淆,望大家周知!