For Loop - Execution Flow in Java
Java uses the brackets ({}) to indicate which lines of code are part of a for loop and which are not.
Take this code for example:
String[] languages = {"Python", "Java", "JavaScript"};
for (String language : languages) {
System.out.println("I love " + language);
System.out.println("I want to get better at it");
}
Both System.out.println statements are part of the loop since they are written inside the brackets.
This means that both messages will be printed for every language in the languages list. The output of that code would be:
I love Python
I want to get better at it
I love Java
I want to get better at it
I love JavaScript
I want to get better at it
As for this code:
String[] languages = {"Python", "Java", "JavaScript"};
for (String language : languages) {
System.out.println("I love " + language);
}
System.out.println("I want to get better at them");
The System.out.println("I want to get better at them"); is not part of the loop.
This means that only System.out.println("I love " + language); will be executed for every language in the languages list.
Then, when the for loop is over, the System.out.println("I want to get better at them"); will be executed only once.
The output of this program would be:
I love Python
I love Java
I love JavaScript
I want to get better at them
Execution flow
Lastly, note that the execution of a program always begins on the first line. The code is then executed one line at a time from top to bottom. This is known as execution flow and is the order a program in Java executes code.
For example, this program:
String[] fruits = {"banana", "apple", "kiwi"};
System.out.println("I'm hungry!");
for (String fruit : fruits) {
System.out.println("I'm gonna eat:");
System.out.println(fruit);
}
System.out.println("I love my life!");
prints:
I'm hungry!
I'm gonna eat:
banana
I'm gonna eat:
apple
I'm gonna eat:
kiwi
I love my life!
Assignment:
Add a for loop inside our code in the editor such that the final program would print:
Today we'll learn about:
Python
Java
JavaScript
Let's code!
Solution
To achieve the desired output, we need to add a for loop that iterates over the array of languages and prints each language. Here is the detailed solution:
Code Implementation
public class Main {
public static void main(String[] args) {
// Define an array of languages
String[] languages = {"Python", "Java", "JavaScript"};
// Print the initial statement
System.out.println("Today we'll learn about:");
// For loop to iterate over each language in the array
for (String language : languages) {
// Print each language
System.out.println(language);
}
// Print the final statement
System.out.println("Let's code!");
}
}
Explanation
Let's break down the code step-by-step:
- Define an array of languages: We start by defining an array of strings named
languagesthat contains the elements "Python", "Java", and "JavaScript". - Print the initial statement: We use
System.out.printlnto print "Today we'll learn about:". This statement is outside the loop, so it will be printed only once. - For loop to iterate over each language: We use a for-each loop to iterate over each element in the
languagesarray. The loop variablelanguagewill take the value of each element in the array one by one. - Print each language: Inside the loop, we use
System.out.printlnto print the current value of thelanguagevariable. This will print each language on a new line. - Print the final statement: After the loop, we use
System.out.printlnto print "Let's code!". This statement is also outside the loop, so it will be printed only once.
Output
The output of the program will be:
Today we'll learn about:
Python
Java
JavaScript
Let's code!
Conclusion
In this lesson, we learned about the execution flow of a for loop in Java. We saw how to use brackets to define the scope of the loop and how to iterate over an array using a for-each loop. Understanding the execution flow is crucial for writing correct and efficient code. By practicing with different examples, you can master the use of loops in Java and apply them to solve various programming problems.