In linguaggio C, ci sono due principali istruzioni di selezione: “if” e “switch“.
- if: L’istruzione “if” permette di eseguire un blocco di codice se una condizione è vera. Può essere seguita dall’istruzione “else” per eseguire un altro blocco di codice nel caso in cui la condizione non sia vera.
- switch: L’istruzione “switch” fornisce un modo per selezionare uno dei molti blocchi di codice da eseguire. Viene utilizzata quando si desidera eseguire diverse azioni in base al valore di una singola espressione. All’interno dello switch, è possibile specificare una serie di “case”, ciascuno dei quali corrisponde a un valore possibile dell’espressione. Inoltre, è possibile includere un’istruzione “default” che viene eseguita se nessuno dei “case” corrisponde al valore dell’espressione.
Le istruzioni di selezione sono uno dei principali costrutti della programmazione imperativa e permettono di scegliere fra diverse alternative all’interno del codice, in base alle condizioni definite. Questo processo di selezione ci consente di scrivere codice che si adatta dinamicamente alle varie situazioni e input.
L’istruzione “if” è la più comune e flessibile, permettendo di valutare una condizione e, se vera, eseguire una serie di istruzioni. Se la condizione non è soddisfatta, il programma può proseguire con un’altra serie di istruzioni definite nell’istruzione “else”. Inoltre, è possibile concatenare più istruzioni “if” in cascata per gestire una serie di condizioni in sequenza.
D’altra parte, l’istruzione “switch” offre un approccio più strutturato quando si ha la necessità di valutare una singola espressione rispetto a diversi valori possibili. Questa istruzione rende il codice più leggibile ed efficiente quando si devono prendere decisioni basate su un numero finito di opzioni.
In sintesi, le istruzioni di selezione in C forniscono ai programmatori gli strumenti necessari per scrivere codice che risponde in modo intelligente e flessibile alle condizioni del programma, consentendo di controllare il flusso di esecuzione e di gestire una varietà di scenari in modo efficace.
Istruzioni di selezione – if
La sintassi dell’istruzione if è questa:
if (condizione) {
// Istruzioni da eseguire se la condizione è vera
}
N.B. Le parentesi graffe possono essere ignorate se è presente una sola istruzione, ma di solito conviene inserirle.
Quindi, se la condizione è vera, vengono eseguite le istruzioni all’interno delle parentesi graffe; altrimenti, se la condizione è falsa, le istruzioni vengono ignorate.
Facciamo dunque un esempio:
if (a > b) {
printf("a è maggiore di b");
}
Oppure senza parentesi:
if (a > b)
printf("a è maggiore di b");
In questo esempio, se il valore di a è maggiore di b, viene stampato “a è maggiore di b”.
Se ci sono più istruzioni, le parentesi graffe diventano obbligatorie:
if (a > b) {
printf("Questo programma dice: ");
printf("a è maggiore di b");
}
Istruzioni di selezione – if … else
La sintassi dell’istruzione if else è la seguente:
if (condizione) {
// Istruzioni da eseguire se la condizione è vera
}
else {
// Istruzioni da eseguire se la condizione è falsa
}
Quindi, se la condizione è vera, vengono eseguite le istruzioni nel primo blocco di codice; altrimenti, se la condizione è falsa, vengono eseguite le istruzioni nel secondo blocco di codice.
Facciamo anche in questo caso un semplice esempio:
if (a > b) {
printf("a è maggiore di b");
}
else {
printf("a non è maggiore di b");
}
Istruzioni di selezione – if…else if…
Quando si desidera gestire più di due casi, si può utilizzare l’istruzione if…else if. Questo costrutto permette di valutare una serie di condizioni in sequenza e di eseguire il blocco di istruzioni associato alla prima condizione che risulta vera.
La sintassi dell’istruzione if …else if è la seguente:
if (condizione1) {
// Istruzioni da eseguire se la condizione1 è vera
}
else if (condizione2) {
// Istruzioni da eseguire se la condizione2 è vera
}
// Altre else if possono essere aggiunte per ulteriori condizioni
else {
// Istruzioni da eseguire se nessuna delle condizioni precedenti è vera
}
In questo modo, l’esecuzione del programma valuta le condizioni nell’ordine in cui sono elencate. Appena trova una condizione vera, esegue il blocco di istruzioni corrispondente e salta il resto del costrutto.
Facciamo dunque un esempio:
if (voto >= 90) {
printf("Hai ottenuto un A");
}
else if (voto >= 80) {
printf("Hai ottenuto un B");
}
else if (voto >= 70) {
printf("Hai ottenuto un C");
}
else if (voto >= 60) {
printf("Hai ottenuto un D");
}
else {
printf("Hai ottenuto un F");
}
In questo esempio, se il voto è maggiore o uguale a 90, viene stampato “Hai ottenuto un A”. Se il voto è compreso tra 80 e 89, viene stampato “Hai ottenuto un B”, e così via. Se nessuna delle condizioni è vera, viene stampato “Hai ottenuto un F”.
if annidati
All’interno di un’istruzione if è possibile inserire qualsiasi tipo di istruzione anche una nuova istruzione if, si parla in questo caso di if annidate.
Facciamo dunque un esempio:
if (voto<10)
if (voto<6)
printf(“Mi spiace ma non sei sufficiente”);
else printf(“Bravo!”);
Grazie mille! Spiegazione molto chiara ed esaustiva; ho apprezzato anche gli esempi.