1. 程式人生 > >java語言中do while迴圈至少執行1次的理解

java語言中do while迴圈至少執行1次的理解

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次,實則不清不楚,容易混淆,望大家周知!