------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流! ----------
for 循環結構和 foreach 循環結構相比起來 我更加喜歡 for 循環, 原因是該循環結構的功能更加強大,下面給大家做一些例子,看看兩者之間有什麼區別,什麼樣的場合應該使用哪種循環。
1、爲什麼要使用循環結構?
很多情況下,我們需要訪問一系列的數據,比如說,想要將二維數組中的數據用表格的方式進行打印輸出,那如果沒有循環我們將會使用如下的方式來實現
-
public static void main(String[] args) {
-
//創建一個二維數組,其實就是一張成績表
-
int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
-
-
//打印二維數組中的內容
-
System.out.println("學生編號\t數學\t英語\t語文");
-
System.out.println(1+"\t"+score[0][0]+"\t"+score[0][1]+"\t"+score[0][2]);
-
System.out.println(2+"\t"+score[1][0]+"\t"+score[1][1]+"\t"+score[1][2]);
-
System.out.println(3+"\t"+score[2][0]+"\t"+score[2][1]+"\t"+score[2][2]);
-
System.out.println(4+"\t"+score[3][0]+"\t"+score[3][1]+"\t"+score[3][2]);
-
System.out.println(5+"\t"+score[4][0]+"\t"+score[4][1]+"\t"+score[4][2]);
-
System.out.println(6+"\t"+score[5][0]+"\t"+score[5][1]+"\t"+score[5][2]);
-
}
複製代碼
從上面的例子可以看出,如果二維數組中的內容越多,那麼我們就需要寫更多的代碼來打印數組中的數據。
然而爲了簡化我們的代碼量,循環結構就派上用場了。
2、如何使用循環結構?
下面我們來看看使用循環結構如果簡化我們的代碼量
-
public static void main(String[] args) {
-
//創建一個二維數組,其實就是一張成績表
-
int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
-
-
//打印二維數組中的內容
-
System.out.println("學生編號\t數學\t英語\t語文");
-
-
//使用循環結構打印數組
-
for (int i = 0; i < score.length; i++) {
-
System.out.println(i+1+"\t"+score[i][0]+"\t"+score[i][1]+"\t"+score[i][2]);
-
}
-
}
複製代碼
可以看出,使用循環結構進行處理後,打印的代碼只寫了一遍,而不管是幾千條數據還是有幾萬條數據,打印的代碼也是隻寫一遍,照樣可以全部打印出來,這就是循環結構所帶來的好處。
那麼循環結構除了使用 for 循環之外,還有一個循環結構,那就是 foreach 循環, 其實 foreach 循環 和 for 循環結構的寫法是類似的,都是使用 for 關鍵字,只是循環表達示不一樣。
如何不一樣? 我們來看下面的例子
-
public static void main(String[] args) {
-
//創建一個二維數組,其實就是一張成績表
-
int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
-
-
//使用循環結構打印數組
-
int index = 1;//聲明循環變量
-
-
for (int[] i : score) {
-
-
System.out.println(index+"\t"+i[0]+"\t"+i[1]+"\t"+i[2]);
-
-
index++;//遞加循環變量
-
}
-
}
複製代碼
可以看出,兩者循環在表達示中不大一樣。
第一、for 循環需要自己去指定循環的次數,而 foreach 不需要指寫循環次數
第二、foreach 循環中,循環變量的定義和遞加要寫在括號外面, 而 for 循環則可將循環變量的定義和遞加寫在裏邊
第三、使用foreach循環中來的結果如果是一個基本數據類型的值,則該值不能進行賦值,如果是引用類型的值,就可以賦值。
3、在什麼情況下使用循環結構?
那現在同樣的一道題,使用 for 和 foreach 都能夠做到,那什麼時候用 for ? 什麼時候用 foreach 呢?
第一、foreach 常用在集合遍歷上
第二、foreach 一般用來讀數據,for 一般用來操作數據(如:修改)
第三、for通常用於遍歷已知次數的集合,foreach 通常用於遍歷未知次數的集合
好了,關於 “for 和 foreach 的區別 ” 就寫到這,呃, 歡迎各位大神來指點一二。 |