官术网_书友最值得收藏!

3.3.1 while循環語句

while循環語句需要先進行循環條件(布爾表達式)判斷,即計算該循環條件的值,結果為true時進入循環體(重復執行的語句塊),結果為false時退出循環。具體語法結構如下:

    while (循環條件){
       重復執行語句塊;
    }

while循環語句的執行流程如圖3.8所示。其執行邏輯為:計算循環條件的結果,如果結果為true,執行“重復執行語句塊”,即循環體;如果結果為false,退出循環,循環體執行完畢后重新回到循環條件判斷。使用while循環時,需要注意以下幾點:

循環條件結果只能為true或者false。

如果循環體只有一條語句則“{}”可以省略。

如果開始第1次循環時循環條件計算的值為false,那么循環體將不會執行。

一般需要在循環體中更改循環變量(循環條件中的變量)的值,使循環趨于結束,否則如果循環條件的結果始終為true,會造成死循環。

知識點撥:所謂死循環,指的是一個無法終止的循環,即該循環會一直執行下去,無法退出。

圖3.8 while循環處理流程圖

根據以上語法,編寫一個案例:小明被罰抄《詠鵝》3遍。實現思路:循環體為輸出《詠鵝》的4句詩;循環條件是輸出3次;根據循環條件可知,循環變量就是次數,初始次數應為0次;循環變量更替應該是每循環一次則次數加1,如例3-7所示。

【例3-7】 Demo0307.java

程序的運行結果如下:

    鵝鵝鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。
    完成了1次
    鵝鵝鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。
    完成了2次
    鵝鵝鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。
    完成了3次

例3-7中,第5行是循環變量初始化,該變量是根據循環條件推斷出來的。第6行是循環條件,其作用是控制循環何時終止。如果循環條件返回值為true,則進入循環體,即執行第7~12行;如果循環條件返回值為false,則終止循環。第7~12行是重復執行的代碼,即循環體,順序執行。其中,第10行的num++是循環變量更替,如果此處不寫該語句,那么num值將一直保持初始值0,循環條件結果將一直為true,就會造成死循環。當第12行執行完畢,即循環體執行完畢后,重新執行第6行的循環條件,即重新進行前面的步驟,直到條件判斷結果為false,即num等于3時,終止循環。

接下來,再編寫一個案例來鞏固循環的使用:計算1+2+3+…+100的結果并輸出,如例3-8所示。

【例3-8】 Demo0308.java

程序的運行結果如下:

    1+2+3+…+100的結果:5050

例3-8中,第5行初始化和為0,如果sum變量不進行聲明和初始化,后續無法直接參與sum = sum + i的運算。第6行是循環變量i的初始化,因為1~100之和是從1開始加的,因此初始值為1。第7行是循環條件,如果i <= 100返回true,說明沒有加到100,循環繼續,否則循環終止。第8行的sum += i等價于sum = sum + i,將之前的和加上當前的i的值,重新賦值給sum。第9行的i++為循環變量更替,計算完畢后重新回到第7行進行循環條件判斷,重復執行。

整體運行過程如下:第1次i = 1,計算累計到1的和為1,賦值給sum,然后執行i++,結果為2,循環體執行完畢;第2次進行“i <= 100”判斷,結果為true,重新進入循環體,計算累計到2的和,賦值給sum后執行i++,結果為3,循環體執行完畢;第3次進行條件判斷,結果為true,重新進入循環體,以此類推,一直計算到累計到100的和,i更新為101,循環條件的結果為false,退出循環。

主站蜘蛛池模板: 孝义市| 章丘市| 双鸭山市| 四会市| 华安县| 繁峙县| 江西省| 绥化市| 同仁县| 衡南县| 金湖县| 城步| 公主岭市| 新巴尔虎左旗| 博客| 宜章县| 饶阳县| 名山县| 龙江县| 桑植县| 梁河县| 普宁市| 仙游县| 册亨县| 新竹县| 来安县| 阳信县| 宿州市| 尤溪县| 庆元县| 靖安县| 宁陵县| 陆丰市| 株洲县| 慈利县| 烟台市| 万安县| 甘南县| 台湾省| 革吉县| 揭阳市|