Condividi tramite


Decisioni e diramazioni (Visual C# Express)

Aggiornamento: novembre 2007

La modifica del flusso di controllo in un programma in risposta ad alcuni tipi di input o di valore calcolato è una componente essenziale di un linguaggio di programmazione. C# consente di modificare il flusso di controllo in modo non condizionale, passando a una nuova posizione nel codice, o in modo condizionale, eseguendo un test.

Osservazioni

La forma più semplice di diramazione condizionale utilizza il costrutto if. È possibile utilizzare una clausola else con i costrutti if, che possono essere nidificati.

using System;

class Program
{
    static void Main()
    {
        int x = 1;
        int y = 1;


        if (x == 1)
            Console.WriteLine("x == 1");
        else
            Console.WriteLine("x != 1");


        if (x == 1)
        {
            if (y == 2)
            {
                Console.WriteLine("x == 1 and y == 2");
            }
            else
            {
                Console.WriteLine("x == 1 and y != 2");
            }
        }                
    }
}
Nota:

Diversamente da C e C++, le istruzioni if richiedono valori Boolean. Non è consentito ad esempio disporre di un'istruzione che non viene valutata su un semplice valore True o False, come (a=10). In C# 0 non può essere sostituito con False e 1 (o qualsiasi altro valore) con True.

Le istruzioni che seguono le parole chiave if e else possono essere singole righe di codice, come illustrato nella prima istruzione if-else nell'esempio di codice precedente, oppure un blocco di istruzioni tra parentesi, come illustrato nella seconda istruzione if-else. È consentita la nidificazione delle istruzioni if-else, ma in genere è preferibile utilizzare un'istruzione switch.

Un'istruzione switch può eseguire più azioni in base al valore di una determinata espressione. Il codice compreso tra l'istruzione case e la parola chiave break viene eseguito se la condizione viene soddisfatta. Se si desidera che il flusso di controllo continui su un'altra istruzione case, utilizzare la parola chiave goto.

using System;

class Program
{
    static void Main()
    {
        int x = 3;

        switch (x)
        {
            case 1: 
                Console.WriteLine("x is equal to 1");
                break;

            case 2:
                Console.WriteLine("x is equal to 2");
                break;

            case 3:
                goto default;

            default:
                Console.WriteLine("x is equal to neither 1 nor 2");
                break;
        }
    }
}

L'espressione utilizzata dall'istruzione switch per determinare quale istruzione case eseguire deve utilizzare Tipi di dati incorporati (Visual C# Express), come int o string; non è possibile utilizzare tipi più complessi definiti dall'utente.

Diversamente da Visual Basic, in C# la condizione deve essere un valore costante. Ad esempio, non è consentito confrontare l'espressione a un intervallo di valori.

Vedere anche

Concetti

Nozioni di base del linguaggio C#

Riferimenti

Istruzioni di selezione (Riferimenti per C#)

Istruzioni di spostamento (Riferimenti per C#)