Clausole di guardia
Fa parte della sezione Logica e flusso del percorso C# di Coddy. Lezione 19 di 66.
Le clausole di guardia sono istruzioni condizionali all'inizio di un metodo che verificano i casi limite o gli input non validi e restituiscono il controllo in anticipo se tali condizioni sono soddisfatte.
Creiamo un metodo senza una clausola di guardia:
public void ProcessOrder(Order order)
{
if (order != null)
{
// Elabora l'ordine
// Molte righe di codice qui...
}
}Ora riscriviamolo con una clausola di guardia:
public void ProcessOrder(Order order)
{
if (order == null)
{
return; // Clausola di guardia: esci subito se order è null
}
// Elabora l'ordine
// Molte righe di codice qui...
}Le clausole di guardia migliorano la leggibilità riducendo i livelli di annidamento e gestendo i casi eccezionali all’inizio di un metodo.
Sfida
FacileCrea un metodo chiamato DivideNumbers che accetti due interi, numerator e denominator.
- Aggiungi una clausola di guardia per verificare se il denominatore è zero.
- Se il denominatore è zero, stampa: "Cannot divide by zero" e restituisci 0.
- Altrimenti, dividi il numeratore per il denominatore e restituisci il risultato.
Provalo tu
using System;
public class Program
{
public static int DivideNumbers(int numerator, int denominator)
{
// Scrivi qui il tuo codice
}
public static void Main()
{
// Leggi i valori di input dalla console
int numerator = Convert.ToInt32(Console.ReadLine());
int denominator = Convert.ToInt32(Console.ReadLine());
// Chiama il metodo DivideNumbers
int result = DivideNumbers(numerator, denominator);
// Stampa il risultato
Console.WriteLine(result);
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Fondamenti degli array 2DDichiarare e inizializzare array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DArray irregolariOperazioni comuni sulle matriciRipasso: array multidimensionali4Tecniche di controllo del flusso
Uscite anticipateClausole di guardiaIstruzioni di salto (goto)Break e continueAppiattire le condizioni annidate2Decisioni avanzate
Condizioni multipleLogica booleana complessaConfronto tra if e switchIstruzioni switch annidateRiepilogo - decisioni avanzate5Gestione delle eccezioni
Nozioni di base su try-catchTipi di eccezioneBlocchi catch multipliLavorare con i fileBlocco finallyUsing vs. try-finallyEccezioni personalizzateRiepilogo - gestione degli errori3Miglioramenti dei cicli
Prestazioni dei cicliIterare strutture complesseOgni tipo di cicloRifattorizzare i cicliRiepilogo - Cicli ottimizzati6Gestione dei valori null
Fondamenti dei riferimenti nullTipi valore nullableSchemi di controllo dei valori nullProgrammazione difensivaRiepilogo: sicurezza rispetto ai valori nullEsercitati da solo: Compilatore C# online