- Java編程講義
- 榮銳鋒 張晨光等編著
- 1259字
- 2022-07-28 18:49:43
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,退出循環。
- 玩轉Scratch少兒趣味編程
- Maven Build Customization
- 精通搜索分析
- Vue.js 3.0源碼解析(微課視頻版)
- 64位匯編語言的編程藝術
- PostgreSQL 11從入門到精通(視頻教學版)
- SSM輕量級框架應用實戰
- 從Excel到Python:用Python輕松處理Excel數據(第2版)
- Raspberry Pi Home Automation with Arduino(Second Edition)
- ASP.NET開發與應用教程
- 搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例
- Developing SSRS Reports for Dynamics AX
- JavaScript動態網頁編程
- 機器學習微積分一本通(Python版)
- RESTful Web Clients:基于超媒體的可復用客戶端