Java編程那些事兒35——while語句文法鄭州遊戲學院 陳躍峰出自:http://blog.csdn.net/mailbomb
5.4 迴圈語句 迴圈語句在程式設計中用來描述有規則重複的流程。在實際的程式中,存在很多需要重複執行的流程,為了簡化這些重複的執行流程,在程式設計語言中新增了該類語句。 在學習迴圈語句時,最重要的就是發現流程的規律,然後再用程式設計語言將該規律描述出來,從來實現程式要求的流程。 迴圈語句是流程式控制制中最複雜,也是最有用、最難掌握的語句,在最初接觸時,首先要熟悉基本的文法,然後需要能夠快速觀察出流程的規律,這個觀察能力需要依靠大量的閱讀和編寫程式進行培養,這就是基本的邏輯思維,然後將該規律描述出來即可。所以在學習迴圈語句時,學習文法只是基本的內容,更多的是培養自己觀察規律的能力,這個才是真正學習迴圈語句時的痛點,也是重點。 本節主要講述迴圈語句的三種文法格式:while語句、do-while語句和for語句。
5.4.1 while語句 while關鍵字的中文意思是“當……的時候”,也就是當條件成立時迴圈執行對應的代碼。while語句是迴圈語句中基本的結構,文法格式比較簡單。 while語句文法格式: while(迴圈條件) 迴圈體; 為了結構清楚,並且使迴圈體部分可以書寫多行代碼,一般把迴圈體處理成代碼塊,則文法格式變為: while(迴圈條件){ 迴圈體; } 文法說明:和if語句類似,如果不是用代碼塊的結構,則只有while後面的第一個語句是迴圈體語句。在該文法中,要求迴圈條件的類型為boolean類型,指迴圈成立的條件,迴圈體部分則是需要重複執行的代碼。 執行流程:在執行while語句時,首先判斷迴圈條件,如果迴圈條件為false,則直接執行while語句後續的代碼,如果迴圈條件為true,則執行迴圈體代碼,然後再判斷迴圈條件,一直到迴圈條件不成立為止。 下面結合具體的樣本來示範一下while語句的基本使用。首先我們來實現一個無限迴圈,也稱死迴圈,具體代碼如下: while(true){ System.out.println(‘a’); } 下面講解一下該while語句的執行順序,首先判斷while語句的迴圈條件,條件成立,則執行迴圈體的代碼,輸出字元a,然後再判別迴圈條件,條件成立,繼續執行迴圈體代碼,輸出a,再判斷迴圈條件……,依次類推,因為迴圈條件一直成立,所以該程式的功能是一直輸出a,永不停止。 說明:在控制台下執行死迴圈的程式,可以按Ctrl+C結束迴圈,在Eclipse中運行死迴圈的程式,可以選擇執行視窗中的紅色按鈕“Terminate”結束程式。 下面是使用while語句輸出0-9這10個數字,程式實現的原理是使用一個變數代表0-9之間的數字,每次輸出該變數的值,每次對該變數的值加1。變數的值從0開始,只要小於數字10就執行該迴圈。具體的範例程式碼如下: int i = 0; while(i < 10){ System.out.println(i); //輸出變數的值 i++; //變數的值增加1 } 其執行流程為:1、 執行int I = 0;2、 判斷i<10是否成立,如果不成立則結束,否則執行下一步3、 輸出變數i的值4、 i的值增加15、 跳轉到步驟2繼續執行需要注意的是,首先while語句中的條件是迴圈成立的條件,也就是該條件成立則繼續迴圈,所以在書寫時注意。另外,內部代碼的書寫有順序,同樣是上面的代碼,如果調整內部代碼的順序,如下所示: int i = 0; while(i < 10){ i++; //變數的值增加1 System.out.println(i); //輸出變數的值 }則程式的執行結果將變為輸出數字1-10。所以在迴圈語句中,代碼之間的順序也影響整個程式的邏輯。下面是用迴圈實現一個簡單的數學邏輯,求1-10這10個數位和。程式的原理是這樣:聲明一個變數i,從1變化到10,在聲明一個變數sum,每次和i的值相加以後賦值給自身,下次再使用sum是變化以後的i相加,迴圈結束以後,得到的結果就是數字1-10之間所有數位和。範例程式碼如下: int i = 1; //迴圈變數 int sum = 0; //數字和 while(i <= 10){ sum += i; //和當前的i值相加 i++; //變數i增加1 }這樣,第一次迴圈是把和1相加的結果賦值給sum,然後再使用sum的值和2相加再賦值給sum,依次類推,則得到1-10之間所有變數的和。在使用迴圈語句時,發現規律需要的時間比編寫和調試代碼需要的時間多得多,所以要善於發現規律,善于思考。