YouTip LogoYouTip

Method For

## Java Loop Control: `for` and `for-each` Loops In Java, loop control statements allow you to execute a block of code repeatedly. The standard `for` loop and the enhanced `for` loop (commonly referred to as the `for-each` loop) are two of the most frequently used iteration mechanisms. This tutorial covers their syntax, use cases, and practical examples for iterating over arrays, multi-dimensional arrays, and collections. --- ## 1. The Standard `for` Loop The standard `for` loop is a control structure used to repeat a block of code a predetermined number of times. It is highly flexible because it gives you direct access to the loop index. ### Syntax ```java for (initialization; boolean_expression; update) { // Code block to be executed } ``` * **Initialization**: Executed only once at the beginning of the loop. It is typically used to declare and initialize a loop counter variable. * **Boolean Expression**: Evaluated before each iteration. If it evaluates to `true`, the loop body executes. If `false`, the loop terminates. * **Update**: Executed at the end of each iteration. It is typically used to increment or decrement the loop counter. --- ## 2. The Enhanced `for` Loop (`for-each`) Introduced in Java 5, the enhanced `for` loop (often called the `for-each` loop) provides a cleaner, more readable way to traverse arrays and collections. It eliminates the need for manual index management, reducing the risk of off-by-one errors. ### Syntax ```java for (ElementType elementVariable : targetObject) { // Code block referencing elementVariable } ``` * **ElementType**: The data type of the elements inside the array or collection. * **elementVariable**: A local variable that represents the current element in the current iteration. * **targetObject**: The array or collection (implementing `Iterable`) that you want to traverse. --- ## 3. Practical Examples ### Example 1: Iterating Over a 1D Array The following example demonstrates how to traverse a simple integer array using both the standard `for` loop and the `for-each` loop. ```java public class Main { public static void main(String[] args) { int[] intArray = {1, 2, 3, 4}; forDisplay(intArray); foreachDisplay(intArray); } // Traverse array using standard for loop public static void forDisplay(int[] a) { System.out.println("Iterating array using standard 'for' loop:"); for (int i = 0; i < a.length; i++) { System.out.print(a + " "); } System.out.println(); } // Traverse array using enhanced for-each loop public static void foreachDisplay(int[] data) { System.out.println("Iterating array using 'for-each' loop:"); for (int element : data) { System.out.print(element + " "); } System.out.println(); } } ``` #### Output ```text Iterating array using standard 'for' loop: 1 2 3 4 Iterating array using 'for-each' loop: 1 2 3 4 ``` --- ### Example 2: Advanced Iteration (2D Arrays and Collections) This comprehensive example demonstrates: 1. Traversing a 1D array using both loop types. 2. Traversing a 2D array using nested `for-each` loops. 3. Traversing a `List` collection. ```java import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; System.out.println("---------- Using Standard 'for' Loop ------------"); for (int i = 0; i < arr.length; i++) { System.out.println(arr); } System.out.println("--------- Using 'for-each' Loop -------------"); // Enhanced for loop (for-each) for (int element : arr) { System.out.println(element); } System.out.println("--------- 'for-each' Loop on 2D Array -------------"); // Traversing a two-dimensional array int[][] arr2 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int[] row : arr2) { for (int element : row) { System.out.println(element); } } System.out.println("---------- Traversing a List Collection -----------"); List list = new ArrayList(); list.add("Google"); list.add("YouTip"); list.add("Taobao"); // Traversing List using standard for loop for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } ``` --- ## 4. Key Considerations: `for` vs. `for-each` | Feature | Standard `for` Loop | Enhanced `for-each` Loop | | :--- | :--- | :--- | | **Index Access** | Yes (Direct access to index `i`). | No (Index is hidden). | | **Modification** | Can modify array elements directly (`arr = value`). | Cannot modify the original array elements (read-only access to elements). | | **Traversal Order** | Flexible (forward, backward, or custom steps). | Strict (sequential forward traversal only). | | **Readability** | More verbose. | Clean, concise, and easy to read. | | **Applicability** | Arrays, Lists, and custom index-based loops. | Arrays and any class implementing `java.lang.Iterable`. | ### When to use which? * Use the **`for-each` loop** by default whenever you need to read all elements sequentially in a collection or array, as it is cleaner and less error-prone. * Use the **standard `for` loop** if you need to modify elements, access specific indices, traverse backwards, or skip elements during iteration.
← Method VarargsMethod Enum1 β†’