java對象for循環
1. 誰能告訴我講解一下java中的for循環!!謝了!
for (表達式1; 表達式2; 表達式3) {}
表達式1:定義一個變數給他初始值,如int i = 0;這里i用於循環。
表達式2:表示當i達到什麼條件的時候執行for中的循環,一旦i不滿足條件,就不執行循環了。如:i<100
表達式3:表示每次循環i的變化,直到i變化到表達式2不滿足條件為止。如:i++,i=i+2,i--等等。
例子:for(int i=100;i>0;i--){}
java中還有個for循環,稱為for each循環,如下:
for(對象名 對象引用:對象的集合){}
意思是把對象集合中的每一個對象賦值給對象的引用,然後可以對其進行相應處理,循環次數取決於集合中對象的數量,例子:
List list = new List();//定義一個集合
list.add(new Integer(1));//在定義的集合中增加一個整型對象,整型對象的值是1
list.add(new Integer(3));//再在定義的集合中增加一個整型對象,整型對象的值是3
for(Integer i:list){//因為集合中剛增加了2個元素,所以只會執行2次循環
System.out.println(i);
}
顯示結果:
1
3
2. java for循環的執行順序和幾種常用寫法
1:遍歷數組的傳統方式
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int j = 0; j<integers.length; j++){
int i = integers[j];
System.out.println(i);
}
2:遍歷Collection對象的傳統方式
/* 建立一個Collection */
String[] strings = {"A", "B", "C", "D"};
Collection stringList = java.util.Arrays.asList(strings);
/* 開始遍歷 */
for (Iterator itr = stringList.iterator(); itr.hasNext();) {
Object str = itr.next();
System.out.println(str);
}
3:遍歷數組的簡單方式
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int i : integers) {
System.out.println(i);/* 依次輸出「1」、「2」、「3」、「4」 */
}
4:遍歷數組的簡單方式的等價代碼
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int 變數名甲 = 0; 變數名甲<integers.length; 變數名甲++) {
System.out.println(integers[變數名甲]);/* 依次輸出「1」、「2」、「3」、「4」 */
}
5:遍歷Collection的簡單方式
/* 建立一個Collection */
String[] strings = {"A", "B", "C", "D"};
Collection list = java.util.Arrays.asList(strings);
/* 開始遍歷 */
for (Object str : list) {
System.out.println(str);/* 依次輸出「A」、「B」、「C」、「D」 */
}
6:遍歷Collection的簡單方式的等價代碼
/* 建立一個Collection */
String[] strings = {"A", "B", "C", "D"};
Collection stringList = java.util.Arrays.asList(strings);
/* 開始遍歷 */
for (Iterator 變數名乙 = list.iterator(); 變數名乙.hasNext();) {
Object str = 變數名乙.next();
System.out.println(str);/* 依次輸出「A」、「B」、「C」、「D」 */
}
7:禁止重新賦值
int[] integers = {1, 2, 3, 4};
for (final int i : integers) {
i = i / 2; /* 編譯時出錯 */
}
8:允許修改狀態
Random[] randoms = new Random[]{new Random(1), new Random(2), new Random(3)};
for (final Random r : randoms) {
r.setSeed(4);/* 將所有Random對象設成使用相同的種子 */
System.out.println(r.nextLong());/* 種子相同,第一個結果也相同 */
}
9:使用和要被遍歷的數組中的元素相同類型的循環變數
int[] integers = {1, 2, 3, 4};
for (int i : integers) {
System.out.println(i);/* 依次輸出「1」、「2」、「3」、「4」 */
}
10:使用和要被遍歷的Collection中的元素相同類型的循環變數
Collection< String> strings = new ArrayList< String>();
strings.add("A");
strings.add("B");
strings.add("C");
strings.add("D");
for (String str : integers) {
System.out.println(str);/* 依次輸出「A」、「B」、「C」、「D」 */
}
11:使用要被遍歷的對象中的元素的上級類型的循環變數
String[] strings = {"A", "B", "C", "D"};
Collection< String> list = java.util.Arrays.asList(strings);
for (Object str : list) {
System.out.println(str);/* 依次輸出「A」、「B」、「C」、「D」 */
}
12:使用能和要被遍歷的對象中的元素的類型自動轉換的類型的循環變數
int[] integers = {1, 2, 3, 4};
for (Integer i : integers) {
System.out.println(i);/* 依次輸出「1」、「2」、「3」、「4」 */
}
