break (Riferimenti per C#)break (C# Reference)

L'istruzione break termina il ciclo di inclusione più vicino o l'istruzione switch in cui appare.The break statement terminates the closest enclosing loop or switch statement in which it appears. Il controllo viene passato all'istruzione che segue l'istruzione terminata, se presente.Control is passed to the statement that follows the terminated statement, if any.

EsempioExample

In questo esempio, l'istruzione condizionale contiene un contatore che dovrebbe contare da 1 a 100. L'istruzione break tuttavia termina il ciclo dopo 4 conteggi.In this example, the conditional statement contains a counter that is supposed to count from 1 to 100; however, the break statement terminates the loop after 4 counts.

class BreakTest
{
    static void Main()
    {
        for (int i = 1; i <= 100; i++)
        {
            if (i == 5)
            {
                break;
            }
            Console.WriteLine(i);
        }

        // Keep the console open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/* 
 Output:
    1
    2
    3
    4  
*/

EsempioExample

Questo esempio illustra l'uso di break in un'istruzione switch.This example demonstrates the use of break in a switch statement.

class Switch
{
    static void Main()
    {
        Console.Write("Enter your selection (1, 2, or 3): ");
        string s = Console.ReadLine();
        int n = Int32.Parse(s);

        switch (n)
        {
            case 1:
                Console.WriteLine("Current value is 1");
                break;
            case 2:
                Console.WriteLine("Current value is 2");
                break;
            case 3:
                Console.WriteLine("Current value is 3");
                break;
            default:
                Console.WriteLine("Sorry, invalid selection.");
                break;
        }

        // Keep the console open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
/*
Sample Input: 1
 
Sample Output:
Enter your selection (1, 2, or 3): 1
Current value is 1
*/

Se è stato immesso 4, l'output dovrebbe essere simile al seguente:If you entered 4, the output would be:

Enter your selection (1, 2, or 3): 4
Sorry, invalid selection.

EsempioExample

In questo esempio, l'istruzione break viene usata per interrompere un ciclo annidato interno e restituire il controllo al ciclo esterno.In this example, the break statement is used to break out of an inner nested loop, and return control to the outer loop. Il controllo viene restituito solo un livello verso l'alto nei cicli nidificati.Control is only returned one level up in the nested loops.

class BreakInNestedLoops
{
    static void Main(string[] args)
    {

        int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
        char[] letters = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };

        // Outer loop.
        for (int i = 0; i < numbers.Length; i++)
        {
            Console.WriteLine($"num = {numbers[i]}");

            // Inner loop.
            for (int j = 0; j < letters.Length; j++)
            {
                if (j == i)
                {
                    // Return control to outer loop.
                    break;
                }
                Console.Write($" {letters[j]} ");
            }
            Console.WriteLine();
        }

        // Keep the console open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}

/*
 * Output:
    num = 0

    num = 1
     a
    num = 2
     a  b
    num = 3
     a  b  c
    num = 4
     a  b  c  d
    num = 5
     a  b  c  d  e
    num = 6
     a  b  c  d  e  f
    num = 7
     a  b  c  d  e  f  g
    num = 8
     a  b  c  d  e  f  g  h
    num = 9
     a  b  c  d  e  f  g  h  i
 */

EsempioExample

In questo esempio, l'istruzione break viene utilizzata solo per interrompere il ramo corrente durante ogni iterazione del ciclo.In this example, the break statement is only used to break out of the current branch during each iteration of the loop. Il ciclo stesso non è influenzato dalle istanze di break che appartengono all'istruzione Switch nidificata.The loop itself is unaffected by the instances of break that belong to the nested switch statement.

class BreakFromSwitchInsideLoop
{
    static void Main(string[] args)
    {
        // loop 1 to 3
        for (int i = 1; i <= 3; i++)
        {
            switch(i)
            {
                case 1:
                    Console.WriteLine("Current value is 1");
                    break;
                case 2:
                    Console.WriteLine("Current value is 2");
                    break;
                case 3:
                    Console.WriteLine("Current value is 3");
                    break;
                default:
                    Console.WriteLine("This shouldn't happen.");
                    break;
            }
        }

        // Keep the console open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}

/*
 * Output:
    Current value is 1
    Current value is 2
    Current value is 3
 */

Specifiche del linguaggio C#C# language specification

Per altre informazioni, vedere la specifica del linguaggio C#.For more information, see the C# Language Specification. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.The language specification is the definitive source for C# syntax and usage.

Vedere ancheSee also