diff --git a/src/navs/documentation.js b/src/navs/documentation.js index 09f8e1f1..f138b59e 100644 --- a/src/navs/documentation.js +++ b/src/navs/documentation.js @@ -18,5 +18,10 @@ export const documentationNav = { pages['expressions-statements-blocks'], pages['comments'], ], - 'Java Flow Control': [pages['if-else-statement'], pages['switch-statement'], pages['for-loop']], + 'Java Flow Control': [ + pages['if-else-statement'], + pages['switch-statement'], + pages['for-loop'], + pages['enhanced-for-loop'], + ], } diff --git a/src/pages/docs/enhanced-for-loop.mdx b/src/pages/docs/enhanced-for-loop.mdx new file mode 100644 index 00000000..941dd4a8 --- /dev/null +++ b/src/pages/docs/enhanced-for-loop.mdx @@ -0,0 +1,157 @@ +--- +title: Java for-each Loop +description: In this tutorial, we will learn about the Java for-each loop and its difference with for loop with the help of examples. +--- + +In Java, the **for-each loop** is used to iterate through elements of [arrays](/docs/arrays) and collections (like [ArrayList](/docs/arraylist)). It is also known as the enhanced for loop. + +## `for-each` Loop Syntax +The syntax of the Java **for-each** loop is: + +```java +for(dataType item : array) { + ... +} +``` +Here, + +- **array** - an array or a collection +- **item** - each item of array/collection is assigned to this variable +- **dataType** - the data type of the array/collection + +### Example 1: Print Array Elements + +#### Input + +```java +// print array elements + +class Main { + public static void main(String[] args) { + + // create an array + int[] numbers = {3, 9, 5, -5}; + + // for each loop + for (int number: numbers) { + System.out.println(number); + } + } +} +``` +#### Output + +```text +3 +9 +5 +-5 +``` +Here, we have used the **for-each loop** to print each element of the numbers array one by one. + +- In the first iteration, the item will be 3. +- In the second iteration, the item will be 9. +- In the third iteration, the item will be 5. +- In the fourth iteration, the item will be -5. + +### Example 2: Sum of Array Elements + +#### Input + +```java +// Calculate the sum of all elements of an array + +class Main { + public static void main(String[] args) { + + // an array of numbers + int[] numbers = {3, 4, 5, -5, 0, 12}; + int sum = 0; + + // iterating through each element of the array + for (int number: numbers) { + sum += number; + } + + System.out.println("Sum = " + sum); + } +} +``` +#### Output: + +```text +Sum = 19 +``` + +In the above program, the execution of the for-each loop looks as: + +| Iteration | Variables | +|----------|----------| +|1| `number` = 3 `sum` = 0 + 3 = 3| +|2| `number` = 4 `sum` = 3 + 4 = 7 +|3| `number` = 5 `sum` = 7 + 5 = 12| +|4| `number` = -5 `sum` = 12 + (-5) = 7| +|5| `number` = 0 `sum` = 7 + 0 = 7| +|6| `number` = 12 `sum` = 7 + 12 = 19| + +As we can see, we have added each element of the `numbers` array to the `sum` variable in each iteration of the loop. + +## for loop Vs for-each loop + +Let's see how a for-each loop is different from a regular [Java for loop](/docs/for-loop). + +### 1. Using for loop + +#### Input + +```java +class Main { + public static void main(String[] args) { + + char[] vowels = {'a', 'e', 'i', 'o', 'u'}; + + // iterating through an array using a for loop + for (int i = 0; i < vowels.length; ++ i) { + System.out.println(vowels[i]); + } + } +} +``` +#### Output: + +```text +a +e +i +o +u +``` +### 2. Using for-each Loop + +#### Input + +```java +class Main { + public static void main(String[] args) { + + char[] vowels = {'a', 'e', 'i', 'o', 'u'}; + + // iterating through an array using the for-each loop + for (char item: vowels) { + System.out.println(item); + } + } +} +``` +#### Output: + +```text +a +e +i +o +u +``` +Here, the output of both programs is the same. However, the **for-each** loop is easier to write and understand. + +This is why the **for-each** loop is preferred over the **for** loop when working with arrays and collections.