C# break and continue and goto statements


In C#, the break, continue, and goto statements are control flow statements that allow you to alter the normal flow of execution in your programs. Here's an explanation of each, along with examples:

1. Break Statement

Purpose:

The break statement is used to immediately exit a loop or a switch statement. When break is encountered, control jumps to the statement following the loop or switch.

Usage in Loops:

You can use break to terminate loops prematurely based on certain conditions.

Example:

int i = 0; while (i < 10) { i++; if (i == 5) { break; // Exit the loop when i equals 5 } Console.WriteLine("Value of i: " + i); }

Output:

Value of i: 1 Value of i: 2 Value of i: 3 Value of i: 4

Explanation:

  • The loop increments i until it reaches 5.
  • When i equals 5, the break statement is executed, terminating the loop immediately.

Usage in Switch Statements:

In a switch statement, break is used to exit the switch block after executing the matched case.

int number = 2; switch (number) { case 1: Console.WriteLine("Number is One"); break; case 2: Console.WriteLine("Number is Two"); break; case 3: Console.WriteLine("Number is Three"); break; default: Console.WriteLine("Number is Unknown"); break; }

Output:

Number is Two

Explanation:

  • When number is 2, the corresponding case is executed, and break is used to exit the switch block, preventing fall-through to subsequent cases.

2. Continue Statement

Purpose:

The continue statement skips the remaining code in the current iteration of a loop and proceeds to the next iteration. It is often used to skip certain conditions within a loop.

Example:

Using continue in a for loop:

for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; // Skip even numbers } Console.WriteLine("Odd Number: " + i); }

Output:

Odd Number: 1 Odd Number: 3 Odd Number: 5 Odd Number: 7 Odd Number: 9

Explanation:

  • The loop iterates from 1 to 10.
  • When i is even (i.e., i % 2 == 0), the continue statement is executed, skipping the Console.WriteLine statement for even numbers.
  • Only odd numbers are printed.

Using continue in a While Loop:

You can also use continue in a while loop:

int j = 0; while (j < 10) { j++; if (j % 2 == 0) { continue; // Skip even numbers } Console.WriteLine("Odd Number: " + j); }

Output:

Odd Number: 1 Odd Number: 3 Odd Number: 5 Odd Number: 7 Odd Number: 9

Explanation:

  • Similar to the for loop example, when j is even, continue skips to the next iteration.

3. Goto Statement

Purpose:

The goto statement is used to transfer control to a labeled statement within the same method. It can be useful for breaking out of deeply nested loops or for jumping to specific points in code.

Usage:

While goto can provide a quick way to jump around, it is often discouraged in modern programming due to potential readability and maintainability issues.

Example:

for (int i = 0; i < 5; i++) { if (i == 2) { goto Skip; // Jump to the Skip label } Console.WriteLine("Value of i: " + i); } Skip: Console.WriteLine("Skipped i = 2");

Output:

Value of i: 0 Value of i: 1 Skipped i = 2 Value of i: 3 Value of i: 4

Explanation:

  • The loop runs from 0 to 4.
  • When i equals 2, the goto Skip; statement transfers control to the Skip: label, skipping the Console.WriteLine for i = 2.

Caution:

Using goto can make code difficult to follow, as it can lead to "spaghetti code." It’s generally better to use structured programming constructs like loops, methods, or conditionals instead of goto.


Summary:

  • break Statement:

    • Purpose: Immediately exits the current loop or switch statement.
    • Use Case: Useful for terminating loops based on a specific condition or exiting switch cases.
  • continue Statement:

    • Purpose: Skips the rest of the code in the current iteration and proceeds to the next iteration of the loop.
    • Use Case: Useful for skipping certain conditions without terminating the loop.
  • goto Statement:

    • Purpose: Jumps to a labeled statement within the same method.
    • Use Case: Can be used for transferring control but is generally discouraged due to potential readability issues.

Understanding these control flow statements allows you to manage the execution path of your C# programs more effectively.