java循環

循環結構

計算機除了擅長判斷外,更多的時候會執行一些循環語句,計算機對這些重複的循環語句的執行很是擅長,java提供了三種基本的循環語句,下面一一詳細介紹:java

1、while循環語句測試

while循環語句,它的條件判斷表達式只有一個,經過判斷條件爲true時執行循環體代碼塊,爲false時退出循環。其語法格式以下:spa

while (判斷條件)code

{blog

// 語句作用域

}for循環

循環開始前,程序會先執行判斷條件裏面的代碼,只要返回true就會進入後面的語句塊,和if判斷同樣,若是後面只有一個語句那麼左右大括號能夠省略,可是爲了提升程序的可讀性,創建仍是寫上大括號。class

下面咱們具幾個簡單的示例說明while的使用,好比咱們要輸出十句hello world語句。固然咱們不用寫10局輸出語句,能夠參考下面的代碼:變量

int i=0;//初始化 i爲0
while(i<10){//進入循環前先判斷條件是否爲true
   System.out.println("hello world!");
   i++;//每一次循環結束前i自增1
}
System.out.println("while循環結束了。i="+i);

使用循環語句咱們能夠輕鬆的實現輸出10句hello world的程序,注意上面的代碼,在循環開始前咱們就定義了一個變量i用戶控制循環的次數,初始化爲0,每一次進入while循環體以前,都會先判斷i是否小於10,若是小於10纔會進入循環體,在循環體裏,咱們讓i自增1,也就是說每輸出已經hello world後,i都會自增1,而後再次回到while循環的判斷條件中,再次判斷,一直i自增到10的時候,該條件就會返回爲false,退出while循環。循環

2、do-while語句

do-while語句和while循環很是相似,都是while後面的條件判斷爲true時纔會繼續循環,因此不少時候二者實現的效果都是同樣的,不過,也是有區別的,其區別在於判斷表達式執行判斷的時間點不同,do-while語句是先進行執行一遍語句後再執行的判斷,這樣至少保證循環體代碼塊執行了一遍,而while 語句是先判斷再執行的,若是條件表達式一開始就不成立的話那麼循環體代碼塊就一次也不會被執行。所以有時使用do-while語句是邏輯上必須的。其具體的語法格式以下:

do {

// 語句

}while (判斷條件);

上面的格式須要注意的是後面別忘了要添加一個分號(;),咱們也但是使用do-while語句實現上面的輸出十句hello world語句的程序,代碼以下:

int i=0;//初始化 i爲0
do{
  System.out.println("hello world");
  i++;
}while(i<10);
System.out.println("while循環結束了。i="+i );

運行結果與使用while循環同樣,咱們再嘗試一下把i改爲20,其代碼以下:

int i=20;//初始化 i爲0
do{
  System.out.println("hello world");
         i++;
}while(i<10);
System.out.println("while循環結束了。i="+i );

程序輸出了一句hello world後,i自增後就是21了,這個時候條件判斷就已是false,因此程序最後也只輸出了一句hello world就退出該循環了。咱們也可使用while循環測試一下,代碼以下:

int i=20;//初始化 i爲0
while(i<10){//進入循環前先判斷條件是否爲true
   System.out.println("hello world!");
   i++;//每一次循環結束前i自增1
}
System.out.println("while循環結束了。i="+i);

一句hello world語句都沒有輸出,由於以開始條件就已是false了,因此循環體一次也沒有進入過。這樣你能明白while循環和do-while循環之間的使用上的區別了吧。

3、for循環語句

在while循環和do-while循環中咱們都使用整型變量i來控制循環次數,每一次執行循環前都須要判斷是否知足循環條件,在循環體重都須要讓變量i自增,像這種相對明確循環次數,而且頻繁使用一個變量來控制循環,java提供了更加簡潔,結構根據清晰的循環,就是下面for循環語句,標準的for循環語句分爲三段表達式。其具體格式以下:

for(初始化;測試; 增量){

操做語句;

}

咱們先看看示例,再詳細講解for的格式,仍是實現上面所說的輸出10句hello world語句。

for(int i=0;i<10;i++){
  System.out.println("hello world!");
}
System.out.println("循環結束了。");

在for後面的小括號同樣要包含三句語句,每個語句的內容不是必須的,可是分號(;)是不能夠缺乏的。三句語句中第一句是一個表達式,用做聲明並初始化,只會執行一次,初始化的一般是一個變量,這個變量做用域循環體內部。固然同時初始化多個變量也是語法所容許的,只是一般沒這種必要,好比:

for(int i=0,j=20;i<50;i++){

}

第二句負責在每次循環執行以前進行判斷,判斷返回一個boolean值,根據這個boolean值決定是否繼續執行循環,true繼續執行,false終止循環。

第三句能夠是任意java表達式,而最多見的用法是進行一個遞增或者遞減的運算,運算的值用於第二個表達式中進行循環控制判斷。

每一句都不是必須的,因此最簡單的for循環語句就是

for(;;){

...

}

就算沒有語句也要寫上分號。

for循環控制的{…}大括號內被稱爲循環體,這段語句塊是每次循環時都執行的代碼邏輯。下面咱們再具幾個常見的例子說明如下for循環的應用。好比咱們要計算1至100累加的和是多少,當實現這個功能有不少方法,這裏咱們使用for循環實現它,代碼以下:

int sum=0;
for(int i=1;i<=100;i++){
   sum+=i;//實現累加
}
System.out.println("sum="+sum);

咱們一開始定義了一個變量sum並初始化爲0,用於記錄運算的結果。sum的做用域再也不for循環體裏,而後咱們使用for循環開始求和,首先咱們先寫for循環的控制頭,在第一句中咱們初始化一個整型變量i,該i的做用域僅在循環裏使用

int i=0;

而後咱們就寫循環的條件判斷了i必需要小於等100,才能繼續進入循環體。

i<=100;

若是條件知足,程序其實就會進入循環體內,執行累加的功能。

sum+=i;//實現累加

循環體執行完畢纔會進入循環控制頭的第三句代碼,這裏就是讓i自增1。

i++;

程序就是這樣不斷的循環下去,一至到條件判斷爲false爲止。最後就會退出該循環並輸出最後的結果:sum=5050

相關文章
相關標籤/搜索