Table of contents
1.
Introduction
2.
Syntax of Break & Continue
2.1.
Break Syntax
2.2.
Continue Syntax
3.
Using Break to Exit a Loop
4.
Example of Break in a For Loop
5.
Example of Break in a While Loop
6.
Using Break as a Form of Goto
6.1.
Syntax and Example
7.
Why Use a Labeled Break?
8.
Using Break to Terminate a Sequence in a Switch Statement
8.1.
Syntax
8.2.
Example: Day of the Week
9.
Continue: Using Continue to Continue a Loop
9.1.
Syntax
9.2.
Example: Skipping Specific Values
10.
Using Continue in Nested Loops
11.
Using Continue as a Labelled Continue Statement
11.1.
Syntax
11.2.
Example: Skipping Iterations in Nested Loops
12.
Practical Use
13.
Difference Between Break and Continue
13.1.
Break Statement
13.2.
Continue Statement
13.3.
Example to Illustrate the Difference
13.3.1.
Output and Interpretation
14.
Frequently Asked Questions
14.1.
What happens if break is not used in a switch statement?
14.2.
Can continue be used outside of loops?
14.3.
Is it good practice to use break and continue frequently in code?
15.
Conclusion
Last Updated: May 15, 2024
Easy

Break and Continue Statement in Java

Author Sinki Kumari
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

In Java programming, loops are used to repeat a block of code multiple times. However, sometimes we may want to break out of a loop early or skip certain iterations based on specific conditions. This is where the break & continue statements come into play. They provide a way to control the flow of loops, allowing us to exit loops prematurely or move to the next iteration. 

Break and Continue Statement in Java

In this article, we will talk about the syntax & usage of break & continue statements in Java, along with practical examples to display their behavior.

Syntax of Break & Continue

Let’s start with the syntax of both of these keywords, it's crucial to understand the basic syntax of break & continue in Java. Both keywords are primarily used within looping constructs such as for, while, & do-while loops.

Break Syntax

break;


This command immediately terminates the loop in which it is placed. Once a break statement is executed, control is transferred to the statement immediately following the loop.

Continue Syntax

continue;


Unlike break, continue does not terminate the loop. Instead, it skips the remaining code in the current iteration & proceeds to the next iteration of the loop. This statement only affects the loop it resides in.

Using Break to Exit a Loop

The break statement in Java serves a crucial role when you need to stop a loop before it naturally completes its cycle. This can be essential for preventing unnecessary processing once a specific condition is met, or when an error requires immediate termination of the loop.

Example of Break in a For Loop

Consider a scenario where you’re searching for a specific number in an array. Once the number is found, there’s no need to continue the loop:

int[] numbers = {1, 3, 5, 7, 9, 2, 4};
int toFind = 7;
boolean found = false;
for (int num : numbers) {
    if (num == toFind) {
        found = true;
        break;  // Exit the loop as soon as the number is found
    }
}
if (found) {
    System.out.println(toFind + " is found in the array.");
} else {
    System.out.println(toFind + " is not found in the array.");
}


In this example, the break statement terminates the for loop as soon as the number 7 is found. This prevents the loop from unnecessarily checking the remaining elements, enhancing efficiency.

Example of Break in a While Loop

Break is also useful in while loops, especially in situations where the termination condition is part of the loop's body, not its logical condition:

int count = 0;
while (true) {  // An infinite loop
    if (count == 5) {
        break;  // Break the loop if count reaches 5
    }
    System.out.println("Count: " + count);
    count++;
}
System.out.println("Loop ends with count = " + count);


Here, the loop is designed to run indefinitely. However, by using the break statement, it exits cleanly when the count reaches 5. This pattern is particularly useful in loops where the termination condition is complex or based on dynamic data.

Using Break as a Form of Goto

While Java does not support the traditional goto statement, which is commonly found in other programming languages like C and C++, the break statement can be utilized in a similar manner to jump out of nested loops. This use of break can be seen as a structured form of goto that avoids the complexities and maintenance issues traditionally associated with unstructured jump statements.

Syntax and Example

In Java, you can label loops and use the break statement to exit specifically labeled loops. This technique is particularly useful when dealing with multiple nested loops and you need to exit more than one level of loop based on a certain condition.

Here’s how you can use break with labels:

outerLoop: // This is a label
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        if (i * j > 6) {
            System.out.println("Breaking at i=" + i + ", j=" + j);
            break outerLoop; // Breaks the outer loop, not just the inner one
        }
    }
}
System.out.println("Exited loops.");

Why Use a Labeled Break?

The labeled break allows you to specify which loop to exit, providing a clear and powerful tool for managing complex loop structures. This approach helps in scenarios where a condition might require immediate exit from multiple layers of looping, without having to set and check multiple condition flags or modify loop variables artificially.

Using labeled breaks enhances readability and control flow in your code, especially in deeply nested loops where the right exit point might depend on conditions met deep within the inner loops.

Using Break to Terminate a Sequence in a Switch Statement

In Java, the break statement is frequently used within switch statements to control the flow of execution. Without a break, the program would continue executing the subsequent cases in the switch block, regardless of whether the conditions match. This behavior is known as "fall-through" and can lead to unexpected results if not handled carefully.

Syntax

Here’s the basic structure of a switch statement incorporating break:

int number = 3;
switch (number) {
    case 1:
        System.out.println("Number is one");
        break;  // Exits the switch statement
    case 2:
        System.out.println("Number is two");
        break;  // Exits the switch statement
    case 3:
        System.out.println("Number is three");
        break;  // Exits the switch statement
    default:
        System.out.println("Number is not one, two, or three");
}

Example: Day of the Week

Consider an example where you want to print a message based on the day of the week:

int day = 4; // Example: 4 corresponds to Wednesday
switch (day) {
    case 1:
        System.out.println("Monday: Start of the work week.");
        break;
    case 2:
        System.out.println("Tuesday: Second day of the week.");
        break;
    case 3:
        System.out.println("Wednesday: Middle of the week.");
        break;
    case 4:
        System.out.println("Thursday: Almost there.");
        break;
    case 5:
        System.out.println("Friday: Last working day!");
        break;
    case 6:
    case 7:
        System.out.println("Weekend: Time to relax!");
        break;
    default:
        System.out.println("Invalid day: Week has only 7 days!");
}


This usage effectively prevents the execution from continuing into subsequent cases once a matching case is found and processed. Each case section typically ends with a break to ensure that the switch statement completes its execution once the correct case has been handled.

In summary, using break in switch cases ensures that each case is mutually exclusive unless explicitly designed to fall through. This is essential for keeping the switch case logic clear and preventing unintended behavior.

Continue: Using Continue to Continue a Loop

The continue statement in Java plays a pivotal role in loop control. Unlike break, which exits the loop, continue skips the current iteration and moves directly to the next iteration of the loop. This statement is particularly useful when you want to avoid executing certain parts of your loop under specific conditions without stopping the entire loop.

Syntax

The syntax for continue is straightforward:

continue;

Example: Skipping Specific Values

Let’s consider a practical example where you want to process only non-negative numbers in a list and skip any negative values:

int[] numbers = {1, -1, 2, -2, 3, -3, 4, -4, 5};
for (int number : numbers) {
    if (number < 0) {
        continue;  // Skip the rest of the loop body for negative numbers
    }
    System.out.println("Processing number: " + number);
}


In this loop, any negative number triggers the continue statement, which immediately skips to the next iteration, thus only positive numbers are processed and printed. This makes continue ideal for filtering out unwanted cases in a loop without additional nesting or complicated logic.

Using Continue in Nested Loops

Continue can also be used in nested loops to control flow more granely. If you are using labeled loops, continue can refer to a specific loop label to skip to the next iteration of that labeled loop

outerLoop: // This is a label for the outer loop
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i == j) {
            continue outerLoop;  // Skip to the next iteration of the outer loop
        }
        System.out.println("i = " + i + ", j = " + j);
    }
}


In this example, whenever i equals j, the continue outerLoop statement is executed, which skips the remaining iterations of the inner loop and jumps directly to the next iteration of the outer loop. This shows how continue can be used to manipulate the flow in complex loop structures effectively.

Using Continue as a Labelled Continue Statement

In Java, the continue statement can also be used with labels to manage the flow of nested loops more effectively. This labeled continue directs the program to resume the next iteration of the outer loop specified by the label, rather than just the immediate loop it is in. This can be very useful in complex loop structures where you need to skip certain iterations at multiple levels.

Syntax

The syntax for using labeled continue is similar to labeled break:

continue labelName;

Example: Skipping Iterations in Nested Loops

Here is an example to demonstrate how labeled continue works:

firstLoop:

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        if (j == 2) {
            continue firstLoop; // Skip to the next iteration of the first loop when j equals 2
        }
        System.out.println("i = " + i + ", j = " + j);
    }
}


In this code, the continue firstLoop statement causes the inner loop to skip the rest of its code whenever j equals 2 and immediately continue with the next iteration of the outer loop labeled firstLoop. This results in skipping the printing of pairs where j equals 2.

Practical Use

The practical use of labeled continue helps in scenarios where certain conditions might only affect the outer loop’s progression, despite being detected in an inner loop. This avoids the clutter of additional flags or conditions set within the inner loops.

Labeled continue enhances clarity and efficiency in nested looping structures by allowing a direct and clear way to skip to desired points in the loop hierarchy. It simplifies complex loops by directly controlling which loop to continue with, based on runtime conditions.

Difference Between Break and Continue

Understanding the difference between the break and continue statements is crucial for effectively controlling the flow of loops in Java programming. Both commands are used within loops to alter the course of execution, but they serve different purposes and lead to different outcomes.

Break Statement

The break statement immediately exits the loop in which it is placed. Once executed, it transfers control to the statement immediately following the loop. It’s commonly used when a specific condition is met, and no further iteration is necessary. This can help in saving computation time and preventing unnecessary execution of code.

Continue Statement

On the other hand, the continue statement skips the current iteration of the loop where it’s executed and proceeds to the next iteration of the loop. Unlike break, continue does not terminate the loop; it simply bypasses the remaining code in the current iteration and continues with the loop's next cycle. This is particularly useful when certain conditions in the loop require skipping some parts of the loop without exiting the loop entirely.

Example to Illustrate the Difference

Here’s a simple example to demonstrate how break and continue work:

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break; // It will exit the loop when i equals 5
    }
    System.out.println("Break example, i: " + i);
}
for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        continue; // It will skip the rest of the code in the loop for i equals 5
    }
    System.out.println("Continue example, i: " + i);
}


Output and Interpretation

  • Break Output: The numbers 1 through 4 will be printed. When i equals 5, the break statement exits the loop, so numbers 5 through 10 are not printed.
     
  • Continue Output: The numbers 1 through 4 and 6 through 10 will be printed. When i equals 5, the continue statement skips to the next iteration, missing the print statement for 5 only.

This distinction highlights how break is used for a complete termination of the loop, whereas continue is used for skipping certain loop executions based on specific conditions, making your loop handling both flexible and powerful.

Frequently Asked Questions

What happens if break is not used in a switch statement?

Without a break, the switch statement will continue executing the subsequent cases until it hits a break or the end of the switch block. This is known as fall-through behavior.

Can continue be used outside of loops?

No, using continue outside of a loop will result in a compile-time error. It is specifically designed to be used within loop constructs like for, while, and do-while loops.

Is it good practice to use break and continue frequently in code?

While both break and continue can make your code more efficient and readable in certain scenarios, overusing them can lead to code that is hard to follow and maintain. It’s best to use them cautiously.

Conclusion

In this article, we have learned the fundamental aspects and differences between the break and continue statements in Java. We discussed their syntax and practical applications through various examples, showing how break exits a loop entirely while continue skips to the next iteration of the loop. Understanding when and how to use these control structures will enhance your ability to write efficient and clear Java code, especially in complex looping situations. 

You can refer to our guided paths on the Coding Ninjas. You can check our course to learn more about DSADBMSCompetitive ProgrammingPythonJavaJavaScript, etc. Also, check out some of the Guided Paths on topics such as Data Structure andAlgorithmsCompetitive ProgrammingOperating SystemsComputer Networks, DBMSSystem Design, etc., as well as some Contests, Test Series, and Interview Experiences curated by top Industry.

Live masterclass