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的值增加1
5、跳轉到步驟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之間所有變量的和。
在使用循環語句時,發現規律需要的時間比編寫和調試代碼需要的時間多得多,所以要善於發現規律,善於思考。
文章來源:http://blog.csdn.net/Mailbomb/archive/2008/06/16/2553501.aspx