CodeGym /Corsi /C# SELF /Operatore condizionale: if else

Operatore condizionale: if else

C# SELF
Livello 3, Lezione 1
Disponibile

1. Operatore if else

Le app sarebbero poco utili se facessero sempre la stessa cosa, indipendentemente da come cambiano le circostanze esterne. Un programma deve sapersi adattare a situazioni diverse e fare certe cose in certi casi, altre in altri.

In C# questo si fa con l'operatore condizionale — una parola chiave speciale che ti permette di eseguire diversi blocchi di comandi a seconda che la condizione sia vera o falsa.

L'operatore condizionale è composto da tre parti: condizione, comando 1 e comando 2. Se la condizione è vera, viene eseguito il comando 1, altrimenti viene eseguito il comando 2. I comandi non vengono mai eseguiti insieme. Ecco la forma generale di questo operatore:

if (condizione)
   comando1;
else
   comando2;
Operatore condizionale if-else

if si traduce come "se", mentre else come "altrimenti". In linguaggio umano sarebbe così:

Se condizione è vera, allora
   esegui comando1;
altrimenti
   esegui comando2;
Operatore condizionale if-else in linguaggio umano

Esempi:

//Sul display verrà mostrata la scritta: Sei ancora un bambino

int age = 17;
if (age < 18)
   Console.WriteLine("Sei ancora un bambino");
else
   Console.WriteLine("Sei già adulto");
//Sul display verrà mostrata la scritta: Caldo

int temperature = 5;
if (temperature < 0)
   Console.WriteLine("Fuori fa freddo");
else
   Console.WriteLine("Caldo");
//Sul display verrà mostrata la scritta: Puoi fare l'esame per la patente

int age = 18;
if (age == 18)
   Console.WriteLine("Puoi fare l'esame per la patente");
else
   Console.WriteLine("Puoi risparmiare per la macchina");

2. Blocco di comandi

Se vuoi che il tuo programma esegua più comandi quando una condizione è vera (o falsa), puoi unirli in un blocco di comandi.

Per unire i comandi in un blocco, devi "avvolgerli" tra parentesi graffe. Ecco come si presenta in generale:

{
   comando1;
   comando2;
   comando3;
}

Nel blocco puoi mettere quanti comandi vuoi. Anche zero.

Esempi di combinazione tra operatore if-else e blocco di comandi:

//Sul display verrà mostrata la scritta: Sei ancora un bambino. Non discutere con gli adulti

int age = 17;
if (age < 18)
{
   Console.WriteLine("Sei ancora un bambino");
   Console.WriteLine("Non discutere con gli adulti");
}
else
{
   Console.WriteLine("Sei già adulto");
   Console.WriteLine("Eh, questa gioventù di oggi");
}
//Sul display verrà mostrata la scritta: Caldo

int temperature = 5;
if (temperature < 0)
{
   Console.WriteLine("Fuori fa freddo");
   Console.WriteLine("Metti il cappello");
}
else
   Console.WriteLine("Caldo");
//Verrà eseguito un blocco di comandi vuoto. Non verrà mostrato nulla sul display. 

int age = 21;
if (age == 18)
   Console.WriteLine("Presentati al distretto militare");
else
{
}

3. Sintassi abbreviata dell'operatore if

Se il blocco else non c'è, puoi semplicemente non scriverlo. L'operatore if sarà così:

if (condizione)
   comando1;
Operatore condizionale if

Esempio:

int age = 19;
if (age >= 18)
{
    Console.WriteLine("Sei maggiorenne!");
}

Come funziona?

Se la condizione è vera, viene eseguito il blocco di codice. Se è falsa, non succede nulla — il programma va avanti.

Il blocco else c'è, ma è vuoto (tra le parentesi graffe non c'è nessun comando). Puoi semplicemente toglierlo: non cambierà nulla nel programma.

4. Combinare condizioni: else if

A volte devi controllare non solo "sì/no", ma scegliere tra più opzioni. Qui entra in gioco la combinazione else if:

if (condizione1)
{
    // Eseguito se condizione1 è vera
}
else if (condizione2)
{
    // Eseguito se condizione2 è vera e condizione1 è falsa
}
else
{
    // Eseguito se nessuna delle condizioni sopra è vera
}

Esempio:

int hour = 13;
if (hour < 12)
{
    Console.WriteLine("Buongiorno!");
}
else if (hour < 18)
{
    Console.WriteLine("Buon pomeriggio!");
}
else
{
    Console.WriteLine("Buonasera!");
}

Cosa succede qui?

  • Se l'ora è prima delle 12 — mattina.
  • Se tra le 12 e le 18 — pomeriggio.
  • Se dopo — sera.
  • Il programma sceglie solo UNA delle opzioni! Appena trova una condizione vera — le altre non vengono nemmeno controllate.

5. Illustrazione schematica: diagramma di flusso della ramificazione

Ecco come appare in un diagramma di flusso:

E se ci sono più condizioni:

È molto simile alle scelte nei giochi di ruolo da tavolo: vai a sinistra — una cosa, a destra — un'altra, dritto — ancora un'altra!

6. Quali condizioni puoi controllare?

Dentro le parentesi tonde dopo if ci deve essere un'espressione LOGICA — il cui risultato è true oppure false.

Operatori di confronto principali:

Operatore Significato Esempio
== Uguale x == 5
!= Diverso x != 10
> Maggiore x > 0
< Minore age < 18
>= Maggiore o uguale score >= 100
<= Minore o uguale count <= 50

Esempi di condizioni:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Nota: = (un solo segno) — è assegnazione. == (due segni) — confronto. Questo è uno degli errori più comuni tra i principianti! Se per sbaglio scrivi:

if (x = 5) // ERRORE!

— il compilatore ti sgriderà, e fa benissimo.

7. Lavorare con le stringhe nelle condizioni

Puoi confrontare non solo numeri, ma anche stringhe:

string password = Console.ReadLine();
if (password == "qwerty")
{
    Console.WriteLine("Sei entrato!");
}

Attenzione: il confronto tra stringhe con == in C# funziona bene nei casi normali, perché confronta il contenuto delle stringhe (non solo i riferimenti agli oggetti). Parleremo meglio delle particolarità del confronto tra stringhe quando arriveremo ai metodi sulle stringhe e alle questioni di localizzazione.

8. Particolarità e sfumature:

Parentesi graffe: servono o no?

Se dopo if o else c'è solo un comando, puoi non mettere le parentesi graffe:

if (age > 18)
    Console.WriteLine("Hai più di 18!");

// Ma è più sicuro SCRIVERLE SEMPRE:
if (age > 18)
{
    Console.WriteLine("Hai più di 18!");
}

Consiglio: scrivile sempre. Ti protegge da un sacco di errori, soprattutto quando il codice cresce.

Errori logici: attenzione alle condizioni!

Se scrivi così:

if (age > 18)
    Console.WriteLine("Hai più di 18!");
    Console.WriteLine("Benvenuto!");

Il compilatore leggerà il codice così:

if (age > 18)
{
    Console.WriteLine("Hai più di 18!");
}

Console.WriteLine("Benvenuto!");

La seconda riga verrà sempre eseguita — le parentesi servono per mettere entrambe le righe dentro lo stesso "ramo".

2
Compito
C# SELF, livello 3, lezione 1
Bloccato
Classificazione della temperatura
Classificazione della temperatura
2
Compito
C# SELF, livello 3, lezione 1
Bloccato
Verifica della password
Verifica della password
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION