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#