Istruzioni ed Espressioni
In questo capitolo imparerai come controllare l’ordine in cui le singole istruzioni (statements) vengono valutate in C. Inizieremo esaminando le istruzioni di base che definiscono il lavoro da eseguire, per poi passare alle strutture che determinano quali blocchi di codice vengono eseguiti e in quale ordine.
Istruzioni di Espressione (Expression Statements)
Section titled “Istruzioni di Espressione (Expression Statements)”Un’istruzione di espressione è un’espressione terminata da un punto e virgola (;). È l’unità base di lavoro in C.
a = 6; // Assegna 6 ad 'a'c = a + b; // Calcola 'a + b' e lo assegna a 'c'; // Istruzione nulla (null statement)++count; // Incrementa 'count'Dopo che ogni espressione completa è stata valutata, il suo valore risultante viene scartato. Affinché un’espressione sia utile, deve produrre degli effetti collaterali (side effects), come modificare il valore di una variabile, chiamare una funzione o accedere a file.
L’istruzione nulla (;) è utile quando la sintassi richiede un’istruzione, ma non c’è nessuna operazione da eseguire. Questo succede comunemente in alcuni cicli intenzionalmente vuoti.
Istruzioni Composte (Blocchi)
Section titled “Istruzioni Composte (Blocchi)”Un’istruzione composta, o blocco (block), è una lista di zero o più istruzioni racchiuse tra parentesi graffe { }.
{ static int count = 0; c += a; ++count;}Ogni istruzione all’interno del blocco viene eseguita in sequenza, a meno che non venga modificata da un’istruzione di controllo del flusso.
I blocchi possono essere annidati l’uno dentro l’altro. Le variabili dichiarate all’interno di un blocco esistono solo all’interno del suo scope (visibilità) e cessano di esistere (o non sono più accessibili) quando il blocco termina.
💻 Esercizio Pratico
Section titled “💻 Esercizio Pratico”Verifica l’effetto dello scope e dello “shadowing”. Aggiungi il codice necessario all’interno del blocco interno per stampare il valore di x (quello locale al blocco) e poi fuori dal blocco interno per stampare l’x originale.