969
技術社區[雲棲]
Java循環結構
Java的循環結構要相對於Java的順序結構來說明。程序的運行時由上到下的順序結構,但是有的程序需要特殊的處理,其不止需要執行一次,這樣就需要使用到循環結構。
Java循環結構:
Java循環結構包括三種:for循環 while循環及do...while循環
for循環及增強否for循環:
for循環的語法格式如下:
for(初始化;布爾表達式;更新運算){
//代碼語句
}
for循環的工作原理是這樣的:
首先執行初始化步驟,初始化是為了得到一個判定條件的值,用於後麵的布爾表達式
接著使用前麵初始化的值在布爾表達式裏麵進行比較,如果布爾表達式的結果是真,那麼就執行代碼語句,代碼語句執行完成後,執行更新運算,這裏更新的是前麵初始化的那個值,然後在進行布爾表達式的運算,如此循環,直到布爾表達式運算結果為假,則跳出循環.
class circilationToFor {
public static void main(String[] args) {
int i;//聲明一個int變量 當然你也可以在for()裏麵進行聲明和初始化
for (i = 0; i < 10; i++) {
System.out.println("是否 "+i+" <10 ? :" + (i < 10) + " 本次循環的i值為: " + i);
}
System.out.println("是否 "+i+" <10 ? :" + (i < 10) +" 跳出循環的i值為: " + i);
}
}
輸出:
是否 0 <10 ? :true 本次循環的i值為: 0
是否 1 <10 ? :true 本次循環的i值為: 1
是否 2 <10 ? :true 本次循環的i值為: 2
是否 3 <10 ? :true 本次循環的i值為: 3
是否 4 <10 ? :true 本次循環的i值為: 4
是否 5 <10 ? :true 本次循環的i值為: 5
是否 6 <10 ? :true 本次循環的i值為: 6
是否 7 <10 ? :true 本次循環的i值為: 7
是否 8 <10 ? :true 本次循環的i值為: 8
是否 9 <10 ? :true 本次循環的i值為: 9
是否 10 <10 ? :false 跳出循環的i值為: 10
說道for循環就不得不提一下增強for循環:
增強for循環是由Java5開始引入的,增強for循環是用於數組類型,格式如下:
for(聲明語句 : 表達式)
{
//代碼句子
}
聲明語句:聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
表達式:表達式是要訪問的數組名,或者是返回值為數組的方法。
class CircilationToEnhanceFor {
public static void main(String[] args) {
int[] i = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
//增強for循環的寫法
for (int value : i) {
System.out.println("增強for循環遍曆的i數組本次值為: "+value);
}
System.out.println("===================我是分割線===================");
//一般for循環的寫法
for(int a = 0;a<i.length;a++){
int value = i[a];
System.out.println("普通for循環遍曆的i數組本次值為: "+value);
}
}
}
輸出:
增強for循環遍曆的i數組本次值為: 1
增強for循環遍曆的i數組本次值為: 2
增強for循環遍曆的i數組本次值為: 3
增強for循環遍曆的i數組本次值為: 4
增強for循環遍曆的i數組本次值為: 5
增強for循環遍曆的i數組本次值為: 6
增強for循環遍曆的i數組本次值為: 7
增強for循環遍曆的i數組本次值為: 8
增強for循環遍曆的i數組本次值為: 9
增強for循環遍曆的i數組本次值為: 0
===================我是分割線===================
普通for循環遍曆的i數組本次值為: 1
普通for循環遍曆的i數組本次值為: 2
普通for循環遍曆的i數組本次值為: 3
普通for循環遍曆的i數組本次值為: 4
普通for循環遍曆的i數組本次值為: 5
普通for循環遍曆的i數組本次值為: 6
普通for循環遍曆的i數組本次值為: 7
普通for循環遍曆的i數組本次值為: 8
普通for循環遍曆的i數組本次值為: 9
普通for循環遍曆的i數組本次值為: 0
其結果是一樣的,但是對於foreach來說更加的方便.
while循環:
while是一種很簡單的循環結構:
while( 布爾表達式 ) {
//循環內容
}
隻要布爾表達式的計算結果為真,則會進入循環內容,循環內容結束後繼續檢查布爾表達式,如此重複,知道布爾表達式輸出假.
class CircilationToWhile {
public static void main(String[] args) {
byte i = 0;
while(i<10) {
System.out.println("(i<10) ? "+(i<10)+ " while循環內容為: " +i);
i++;
}
//當(i<10)為fals時跳出循環.
System.out.println("(i<10) ? "+(i<10)+ " i= " +i);
}
}
輸出:
(i<10) ? true while循環內容為: 1
(i<10) ? true while循環內容為: 2
(i<10) ? true while循環內容為: 3
(i<10) ? true while循環內容為: 4
(i<10) ? true while循環內容為: 5
(i<10) ? true while循環內容為: 6
(i<10) ? true while循環內容為: 7
(i<10) ? true while循環內容為: 8
(i<10) ? true while循環內容為: 9
(i<10) ? false i= 10
do…while 循環
do…while 循環循環與while循環唯一不同的地方在於,無論如何do…while 循環都會幹一次! 對,無論怎樣都會幹一次的.幹了再說
class CircilationToDoWhile {
public static void main(String[] args) {
byte i = 10;
do {
//無論如何都會幹一次的,無論你原本不願意還是願意
System.out.println("(i<10) ? " + (i < 10) + " i= " + i);
i++;
} while (i < 10);
//當(i<10)為fals時跳出循環.
System.out.println("(i<10) ? "+(i<10)+ " i= " +i);
}
}
輸出:
(i<10) ? false i= 10
(i<10) ? false i= 11
循環講完了我們需要老認識一下控製循環的兩個Java關鍵字
break:
break的作用是跳出循環
class Control {
public static void main(String[] args) {
int i;
//一層for循環
for (i = 0; i < 10; i++) {
System.out.println("還沒有執行break,執行到了這裏");
break;
}
System.out.println("當輸出了↑↑↑以後 ,執行了break,沒有進行i++運算,我跳出循環");
}
}
輸出:
還沒有執行break,執行到了這裏
當輸出了↑↑↑以後 ,執行了break,沒有進行i++運算,我跳出循環
class Control1 {
public static void main(String[] args) {
//多層循環
int a;
int c;
for (a = 0; a < 10; a++) {
System.out.println("第" + a + "次外層for循環===========");
for (c = 0; c < 10; c++) {
System.out.println(" 第" + c + "次裏層for循環 跳出!");
break;//brake語句隻是會結束他所在的循環體
}
}
}
}
輸出:
第0次外層for循環===========
第0次裏層for循環 跳出!
第1次外層for循環===========
第0次裏層for循環 跳出!
第2次外層for循環===========
第0次裏層for循環 跳出!
第3次外層for循環===========
第0次裏層for循環 跳出!
第4次外層for循環===========
第0次裏層for循環 跳出!
第5次外層for循環===========
第0次裏層for循環 跳出!
第6次外層for循環===========
第0次裏層for循環 跳出!
第7次外層for循環===========
第0次裏層for循環 跳出!
第8次外層for循環===========
第0次裏層for循環 跳出!
第9次外層for循環===========
第0次裏層for循環 跳出!
class Contro2 {
public static void main(String[] args) {
int d;
int e;
for (d=0;d<10;d++){
System.out.println("第" + d + "次外層for循環===========");
for(e=0;e<10;e++){
System.out.println(" 第"+e+"次裏層for循環");
break;//brake語句隻是會結束他所在的循環體
}
break;
}
}
}
輸出:
第0次外層for循環===========
第0次裏層for循環
continue 關鍵字
continue 關鍵字是標識結本次循環,進入下一次循環,
class Contro3{
public static void main(String[] args) {
int i;
for (i=0;i<10;i++){
System.out.println(i+ " 本循環不輸出下一個語句.");
continue;
}
}
輸出:
0 本循環不輸出下一個語句.
1 本循環不輸出下一個語句.
2 本循環不輸出下一個語句.
3 本循環不輸出下一個語句.
4 本循環不輸出下一個語句.
5 本循環不輸出下一個語句.
6 本循環不輸出下一個語句.
7 本循環不輸出下一個語句.
8 本循環不輸出下一個語句.
9 本循環不輸出下一個語句.
在Java中很多地方都用得到循環結構,可以結合使用它們.
循環先這樣吧,後麵和數組,集合在配合描述.
最後更新:2017-05-24 14:31:34