Java中for迴圈和增強for迴圈的區別


Java在迭代元素方面提供了許多選擇,其中兩種流行的迴圈結構是傳統的for迴圈和增強的“foreach”迴圈,它們分別提供了完成此任務的不同方法。瞭解這些機制的差異對於Java程式設計師來說至關重要,它將有助於他們在特定情況下選擇最合適的樣式。

語法

傳統for迴圈的語法如下:

for (initialization; condition; increment/decrement) {
   // Code to be executed
}

增強的for迴圈,也稱為“foreach”迴圈,具有不同的語法:

for (datatype variable : collection) {
   // Code to be executed
}

語法解釋

傳統的for迴圈包含三個部分:初始化、條件和增量/減量。初始化步驟只在開始時執行一次。在每個迴圈之前都會評估條件,如果條件為真,則執行迴圈內的程式碼。在每個迴圈之後,都會執行增量/減量步驟。

另一方面,增強的for迴圈透過消除初始化、條件和增量/減量步驟簡化了語法結構。它直接迭代集合或陣列。

方法1:傳統for迴圈

演算法

  • 初始化一個變數。

  • 指定執行迴圈的條件。

  • 執行迴圈內的程式碼塊。

  • 遞增或遞減變數。

示例

public class TraditionalForLoopExample {
   public static void main(String[] args) {
      for (int i = 0; i < 5; i++) {
         System.out.println("Iteration: " + i);
      }
   }
}

輸出

Iteration: 0
Iteration: 1
Iteration: 2
Iteration: 3
Iteration: 4

解釋

程式碼以宣告一個名為TraditionalForLoopExample的公共類開頭。

在課堂上,可以遇到一個稱為main方法的基本過程。此元件充當程式開始執行的入口點。

for關鍵字表示迴圈結構的開始。

int i = 0 初始化迴圈控制變數i,其初始值為0。

i < 5 是確定迴圈是否應該繼續執行的條件。只要i小於5,迴圈就會繼續迭代。

這段程式碼使用迭代語句來更新名為'i'的遞增整數變數。在程式迴圈實現的每個後續週期中,我們透過'++'(如上所述)向我們遇到的'i'的任何當前值新增一個——使我們能夠輕鬆跟蹤當前迭代器。包含在用括號{}引用的塊中,我們擁有在談論“迴圈”時屬於我們程式性範圍內的所有內容。這裡有一個特殊命令 - System.out.println("Iteration: " + i); - 在執行時在螢幕上輸出包含文字(“Iteration”)和變數的資料。

迴圈持續執行,直到條件i < 5變為假。在這種情況下,當i達到5時,條件不再為真,迴圈終止。

方法2:增強for迴圈

演算法

  • 宣告一個變數來儲存集合的每個元素。

  • 指定要迭代的集合。

  • 執行迴圈內的程式碼塊,使用宣告的變數訪問每個元素。

  • 考慮以下增強for迴圈的示例:

示例

public class EnhancedForLoopExample {
   public static void main(String[] args) {
      String[] fruits = {"Apple", "Banana", "Orange"};
      for (String fruit : fruits) {
         System.out.println("Fruit: " + fruit);
      }
   }
}

輸出

Fruit: Apple
Fruit: Banana
Fruit: Orange

解釋

程式碼以宣告一個名為EnhancedForLoopExample的公共類開頭。

在課堂上,可以遇到一個稱為main方法的基本過程。此元件充當程式開始執行的入口點。

聲明瞭一個名為fruits的String型別陣列。此程式碼行建立一個名為fruits的陣列,該陣列可以儲存String值。該陣列初始化了三個元素:“Apple”、“Banana”和“Orange”。

增強的for迴圈簡化了迭代陣列和集合的過程。

迴圈遍歷fruits陣列中的每個元素,將當前元素賦值給迴圈變數fruit。

對每次迭代執行用大括號{}括起來的程式碼塊允許輕鬆列印水果陣列中的每個單個元素。輸出包括靜態標籤“Fruit:”和一個變數值,該變數值表示在透過System.out.println("Fruit: " + fruit);迭代它們時任何時刻的特定專案。這種方法消除了與手動索引技術相關的順序位移或索引間隙的任何風險,這些技術通常用於遍歷像陣列這樣的資料集。

Java中for迴圈和增強for迴圈的區別

區別

傳統for迴圈

增強for迴圈

語法

需要顯式初始化、條件和增量/減量步驟

簡化的語法,不需要初始化、條件或增量/減量步驟

迭代控制

提供對初始化、條件和增量/減量步驟的更多控制

自動迭代集合或陣列的元素

訪問元素

可以使用索引變數和陣列/集合大小訪問元素

直接訪問元素,無需索引或大小

程式碼可讀性

需要顯式處理迭代細節

透過抽象迭代細節來增強程式碼可讀性

用例

適用於需要顯式控制迭代的情況

非常適合迭代集合或陣列,而無需複雜的迭代要求

結論

傳統的for迴圈和增強的for迴圈在Java程式設計中都具有其自身的意義。傳統的for迴圈提供了對迭代處理的更多靈活性和控制,允許程式設計師定義初始化、條件和增量/減量步驟。當在開發中知道迴圈次數或特定條件時,通常會使用它。

更新於:2023年7月28日

瀏覽量:564

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.