首頁  >  文章  >  Java  >  Java 中的 For-Each 循環

Java 中的 For-Each 循環

WBOY
WBOY原創
2024-08-30 15:25:221138瀏覽

Java 從 JDK 5 開始引入了 Foreach 迴圈。它的目的是按順序迭代 Collection 或數組的所有元素。在其他語言(如 C#)中也存在這種情況,它使用關鍵字 for-each。然而,與 C# 不同,Java 使用關鍵字「for」僅用於實作 for-each 循環,但其語法與傳統的 for 循環不同。這種 for-each 迴圈在 Java 中也稱為增強型 for 迴圈。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

for(type iter_var : Collection) statement_block

上面使用的每個術語的解釋如下:

  1. ‘type’表示
  2. 物件的資料類型
  3. ‘iter_var’表示迭代變數名稱,當我們迭代循環時,它儲存 Collection 的每個值。
  4. ‘Collection’指定我們要迭代的集合或陣列。
  5. 「語句區塊是我們要為迴圈的每次迭代執行的語句集。

需要注意的是,for-each 循環按順序存取集合/數組元素,其中它將每個元素的值儲存在迭代變數中。以下是 for-each 迴圈的流程圖。

Java 中的 For-Each 循環

如您所注意到的,for 迴圈和 for-each 迴圈之間存在某些細微的差異。 For迴圈需要預先指定迭代次數。然而,for-each 迴圈的情況並非如此,因為迴圈從 Collection/array 的第一個元素迭代到最後一個元素,並且不需要指定迭代次數。

要記住的重要一點是 for-each 迴圈中指定的類型必須與集合中元素的類型匹配,否則會出現相容性問題。

Java 中的 For-Each 循環範例

以下是不同的範例:

1. For 迴圈

讓我們使用 for 迴圈來計算一組人的平均年齡:

代碼:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
{
System.out.print(ages[i]+" "); sum += ages[i];
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

輸出:

Java 中的 For-Each 循環

2. For-Each 迴圈

使用 for-each 迴圈找出一組人的平均年齡:

代碼:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" "); sum += x;
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

輸出:

Java 中的 For-Each 循環

使用兩個循環的輸出是相同的,如上圖所示。

使用 Break 語句的 Foreach 迴圈

使用break語句可以減少for-each迴圈的迭代次數。例如,如果我們只想求前 5 個元素的總和,我們可以使用break語句,如下所示:

代碼:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" ");
}
for (int x : ages)
{
if (ctr == 5) break; sum += x;
ctr += 1;
}
System.out.println("\nSum of age of first 5 people of the group = " + sum);
}
}

輸出:

Java 中的 For-Each 循環

在上面提到的 for-each 迴圈中,x 是迭代變量,每次迭代儲存數組的一個元素,該元素在下一次迭代中發生變化。在第一次迭代中,x 儲存數組的第一個元素和最後一次迭代元素的最後一個元素。與 for 迴圈不同,我們使用索引來存取數組元素,for 每個迴圈使用迭代變數來存取元素。

使用 for 每個迴圈時需要小心,因為迭代變數暫時儲存數組元素的值,因為它是「唯讀」的,並且更改其值不會修改原始數組。這與 for 迴圈相矛盾,在 for 迴圈中更改元素會修改原始陣列。

讓我們考慮一個例子,我們將 5 加到陣列的每個元素。我們可以在以下範例程式碼中發現輸出的差異:

不同條件的 For 迴圈

不同條件下的for迴圈解釋如下:

代碼:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" "); ages[i]+= 5;
}
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" ");
}
}
}

輸出:

Java 中的 For-Each 循環

for 迴圈的輸出顯示原始陣列的更新

不同條件的 Foreach 迴圈

不同條件下的for迴圈解釋如下:

代碼:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int x : ages)
{
System.out.print(x+" "); x += 5;
}
System.out.print("\nNew elements of the array are : "); for (int x : ages)
{
System.out.print(x+" ");
}
}
}

輸出:

Java 中的 For-Each 循環

for-each 迴圈的輸出顯示原始陣列沒有更新

關於 Java 中的 For-Each 迴圈需要記住的事情

  1. Java 中的 For-Each 迴圈用於迭代序列中的陣列/集合元素。
  2. Java 中的 For-Each 迴圈使用迭代變數來迭代元素的集合或陣列。
  3. 修改迭代變數不會修改原始陣列/集合,因為它是唯讀的。
  4. for-each 迴圈中的型別必須與原始陣列/集合元素的型別相符。
  5. Foreach 迴圈不需要指定迭代次數,因為它會迭代集合的所有元素。
  6. 可以使用break語句停止for-each迴圈。

以上是Java 中的 For-Each 循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn