Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/navs/documentation.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
],
}
157 changes: 157 additions & 0 deletions src/pages/docs/enhanced-for-loop.mdx
Original file line number Diff line number Diff line change
@@ -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.