咱們前面已經說過了java的兩種循環:for循環和while循環,此次咱們說一下關於這兩個循環的兩種特殊操做:continue和break。英語裏,continue是繼續的意思,而break則是中斷的意思。其實在java裏,這兩種操做也是這個意思,下面咱們分別介紹一下這兩個操做。java
首先說一下continue,當循環裏出現這個字,意思就是再也不執行continue之後的操做,而是轉到循環開始那裏進行條件判斷,若是能夠,則進行新一輪的循環,不然就退出循環。這裏的循環,多是for循環,也多是while循環。如今假設咱們有一個如這樣形式的while循環:程序員
while(條件1)編程
{小程序
語句1;設計
if(條件2)blog
{for循環
語句2;程序設計
continue;原理
} 隨機數
語句3;
}
咱們假設開始的時候條件1爲true, 咱們進入while循環,先是執行語句1,而後咱們判斷條件2,假設此時條件2爲true, 而後就會進入if裏面,會執行語句2,而後執行contnue;
而後呢?注意了,因爲continue的關係,此時程序將直接跳轉到while後面的圓括號那裏對條件1進行判斷,假如條件1仍是true,咱們又進入了while,執行語句1,而後判斷條件2,若是此時條件2爲false, 則不進入if語句,因而咱們將不會運行continue, 而後咱們就會運行語句3, 而後回到while後面的圓括號那裏對條件1進行判斷......。
我想讀者此時不難發現,若是條件2一直爲真,那麼語句3將永遠沒法被執行到。咱們這裏暫時並不討論這樣的操做有什麼實際意義,只要先弄明白continue的原理就好。實際編程中,讀者能夠靈活運用continue的特性。(有時候continue在循環裏能夠替代if-else語句,有時候則用來在特定狀況下規避某些操做,好比,有可能用在鏈表和樹的操做上。)
一樣的,若是continue出如今for循環裏,其工做原理是同樣的,這裏就再也不贅述。
那麼,break呢?break就相對比較簡單了,break就是強制退出的意思,當一個循環中出現break而且被執行到,那麼將強制退出循環,記住,是強制的,無條件的退出。如今假設咱們有一個這樣的for循環:
for(......)
{
語句1;
break;
語句2;
}
語句3;
那麼,當程序執行到break的時候,將會跳出這個for循環,而去執行語句3,固然,語句2將不會被執行到。
下面,咱們來寫個小程序來驗證一下continue和break,在這個程序中,咱們先生成一個0到100之間的隨機數,而後咱們使用for循環,i從0到100,若是i是那個隨機數,則跳出整個循環,若是i爲偶數,則打印出來,若是爲奇數,那麼則跳過。如下是程序代碼和運行結果:
注意,因爲咱們使用了隨機數,因此每次的運行結果若是不一樣,那是正常的,不一樣點就在於,那個隨機數不一樣,因此程序跳出的時候也是不一樣的,極端的狀況是咱們的隨機數是0,那麼將不會打印出任何數字,直接跳出循環。屏幕上只會顯示Processing completely.
以上這個小例子能夠基本的說明了continue和break的特色。事實上,有些程序員並不同意使用這兩種操做,認爲這會破壞程序的可讀性和形成邏輯上的混亂,可是在我這個菜鳥來看,合理的運用continue和break,有時候可以簡化代碼,並且能寫出比較精巧的程序來。總之仁者見仁智者見智,在之後的程序設計中,每一個人都有本身的感覺吧。