Popular Tutorials
Start Learning JavaCreated with over a decade of experience.
Certification Courses
Created with over a decade of experience and thousands of feedback.
Java Introduction
Java Fundamentals
Java Flow Control
Java Arrays
Java OOP(I)
Java OOP(II)
Java OOP(III)
Java Exception Handling
Java List
Java Queue
Java Map
Java Set
Java I/o Streams
- Java I/O Streams
- Java InputStream Class
- Java OutputStream Class
- Java FileInputStream Class
- Java FileOutputStream Class
- Java ByteArrayInputStream Class
- Java ByteArrayOutputStream Class
- Java ObjectInputStream Class
- Java ObjectOutputStream Class
- Java BufferedInputStream Class
- Java BufferedOutputStream Class
- Java PrintStream Class
Java Reader/Writer
Additional Topics
Nested Loop in Java
If a loop exists inside the body of another loop, it's called a nested loop. Here's an example of the nested for loop.
// outer loop
for (int i = 1; i <= 5; ++i) {
// codes
// inner loop
for(int j = 1; j <=2; ++j) {
// codes
}
..
}
Here, we are using a for loop inside another for loop.
We can use the nested loop to iterate through each day of a week for 3 weeks.
In this case, we can create a loop to iterate three times (3 weeks). And, inside the loop, we can create another loop to iterate 7 times (7 days).
Example 1: Java Nested for Loop
class Main {
public static void main(String[] args) {
int weeks = 3;
int days = 7;
// outer loop prints weeks
for (int i = 1; i <= weeks; ++i) {
System.out.println("Week: " + i);
// inner loop prints days
for (int j = 1; j <= days; ++j) {
System.out.println(" Day: " + j);
}
}
}
}
Output
Week: 1
Day: 1
Day: 2
Day: 3
..... .. ....
Week: 2
Day: 1
Day: 2
Day: 3
.... .. ....
.... .. ....
In the above example, the outer loop iterates 3 times and prints 3 weeks. And, the inner loop iterates 7 times and prints the 7 days.
We can also create nested loops with while and do...while in a similar way.
Note: It is possible to use one type of loop inside the body of another loop. For example, we can put a for loop inside the while loop.
Example 2: Java for loop inside the while loop
class Main {
public static void main(String[] args) {
int weeks = 3;
int days = 7;
int i = 1;
// outer loop
while (i <= weeks) {
System.out.println("Week: " + i);
// inner loop
for (int j = 1; j <= days; ++j) {
System.out.println(" Days: " + j);
}
++i;
}
}
}
Output:
Week: 1 Day: 1 Day: 2 Day: 3 .... .. .... Week: 2 Day: 1 Day: 2 Day: 3 .... .. .... .... .. ....
Here you can see that the output of both Example 1 and Example 2 is the same.
Example 3: Java nested loops to create a pattern
We can use the nested loop in Java to create patterns like full pyramid, half pyramid, inverted pyramid, and so on.
Here is a program to create a half pyramid pattern using nested loops.
class Main {
public static void main(String[] args) {
int rows = 5;
// outer loop
for (int i = 1; i <= rows; ++i) {
// inner loop to print the numbers
for (int j = 1; j <= i; ++j) {
System.out.print(j + " ");
}
System.out.println("");
}
}
}
Output
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
To learn more, visit the Java program to print pyramid and patterns.
break and continue Inside Nested Loops
When we use a break statement inside the inner loop, it terminates the inner loop but not the outer loop. For example,
class Main {
public static void main(String[] args) {
int weeks = 3;
int days = 7;
// outer loop
for(int i = 1; i <= weeks; ++i) {
System.out.println("Week: " + i);
// inner loop
for(int j = 1; j <= days; ++j) {
// break inside the inner loop
if(i == 2) {
break;
}
System.out.println(" Days: " + j);
}
}
}
}
Output
Week: 1 Day: 1 Day: 2 .... .. .... Week: 2 Week: 3 Day: 1 Day: 2 .... .. .... .... .. ....
In the above example, we have used the break statement inside the inner for loop. Here, the program skips the loop when i is 2.
Hence, days for week 2 are not printed. However, the outer loop that prints week is unaffected.
Similarly, when we use a continue statement inside the inner loop, it skips the current iteration of the inner loop only. The outer loop is unaffected. For example,
class Main {
public static void main(String[] args) {
int weeks = 3;
int days = 7;
// outer loop
for(int i = 1; i <= weeks; ++i) {
System.out.println("Week: " + i);
// inner loop
for(int j = 1; j <= days; ++j) {
// continue inside the inner loop
if(j % 2 != 0) {
continue;
}
System.out.println(" Days: " + j);
}
}
}
}
Output
Week: 1 Days: 2 Days: 4 Days: 6 Week: 2 Days: 2 Days: 4 Days: 6 Week: 3 Days: 2 Days: 4 Days: 6
In the above example, we have used the continue statement inside the inner for loop. Notice the code,
if(j % 2 != 0) {
continue;
}
Here, the continue statement is executed when the value of j is odd. Hence, the program only prints those days that are even.
We can see the continue statement has affected only the inner loop. The outer loop is working without any problem.
