Informatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
fix
Riga 2:
==Istruzione switch==
 
L'istruzione switch serve per selezionare ed eseguire , in funzione del risultato (intero) di una certa espressione , uno dei blocchi di codice indicizzati nello switch.<br />
 
Viene utilizzata per creare ad esempio un menù di scelta, se l'utente preme il numero 1 viene creato il database, se preme 2 puo'può inserire un record, se preme 3 può ricercare un elemento etcecc.<br />
 
 
La sintassi del comando e'è la seguente<br />
 
 
Riga 33:
}
<br />
 
 
Quando viene eseguito il comando viene valutata l'espressione , questa da come risultato un numero intero, si ricerca fra i numeri scritti affianco alla parola case se c'e' una corrispondenza , se viene trovata vengono eseguite le istruzioni del blocco associato a quel case, se non c'e' una corrispondenza vengono eseguite le istruzioni associate alla parola default.
Attenzione che i .... li ho messi per evidenziare che potete aggiungere piu' istruzioni o piu' case.<br />
 
Quando viene eseguito il comando viene valutata l'espressione , questa da come risultato un numero intero, si ricerca fra i numeri scritti affiancoa fianco alla parola case se c'e'è una corrispondenza , se viene trovata vengono eseguite le istruzioni del blocco associato a quel case, se non c'e'è una corrispondenza vengono eseguite le istruzioni associate alla parola default.
Vediamo un esempio per capire meglio:<br />
Attenzione che i .... li ho messi per evidenziare che potete aggiungere piu'più istruzioni o piu'più case.<br />
 
Vediamo un esempio per capire meglio:<br />
 
 
Riga 97:
</source>
 
In questo programma si e'è realizzato un menu'menù di scelta <br />
 
* se l'utente preme 1 si esegue il blocco di codice per calcolare l'area di un rettangolo
* se seleziona 2 si esegue il blocco di codice per il calcolo del trapezio
* se si seleziona 3 il blocco di codice per il calcolo dell'area del cerchio
<br />
 
in questo caso l'espressione intera da valutare e' costituita da una sola variabile la x, ma poteva anche essere del tipo 2*x*y-4 , basta che il risultato sia un numero intero.<br />
 
in questo caso l'espressione intera da valutare e'è costituita da una sola variabile la x, ma poteva anche essere del tipo 2*x*y-4 , basta che il risultato sia un numero intero.<br />
poi ci sono 3 case, ciascuno con associato un numero intero, il primo case ha come costante numerica associata il numero 1, il secondo case il numero 2 , il terzo case il numero 3. Il fatto che il primo case abbia come numero associato il valore 1 e' un puro caso poteva benissimo avere come costante numerica il numero 37 , stessa cosa dicasi per i case successivi, ad esempio il secondo case poteva avere il numero 10, quindi non bisogna neppure rispettare un ordine crescente nella scelta delle costanti numeriche.<br />
 
poi ci sono 3 case, ciascuno con associato un numero intero, il primo case ha come costante numerica associata il numero 1, il secondo case il numero 2 , il terzo case il numero 3. Il fatto che il primo case abbia come numero associato il valore 1 e'è un puro caso poteva benissimo avere come costante numerica il numero 37 , stessa cosa dicasi per i case successivi, ad esempio il secondo case poteva avere il numero 10, quindi non bisogna neppure rispettare un ordine crescente nella scelta delle costanti numeriche.<br />
 
dopo il numero che rappresenta la costante numerica compaiono i : che ci vanno e poi vengono scritte le istruzioni associate a quel case, questo blocco di istruzioni di solito termina con l'istruzione break che termina lo switch, se nel corso dell'esecuzione del programma ci sarà corrispondenza fra il valore assunto dalla x e la costante di un case verrà eseguito il blocco di codice corrispondente. Nel nostro caso se premo 1 la x assume quel valore , c'e'è corrispondenza con la costante numerica (1) del primo case e quindi si avviano le istruzione per eseguire il calcolo dell'area del rettangolo.
Se il numero digitato fosse stato 3, la x assumeva quel valore , il primo e il secondo case venivano ignorati perchèperché avevano una costante numerica diversa dal valore della x, e si arrivava al terzo case che aveva come costantenumericacostante numerica lo stesso valore della x, ora il codice ad essere eseguito e'è quello che serve per risolvere il calcolo dell'area del cerchio. L'esecuzione dei blocchi di codice si ferma quando viene incontrata l'istruzione break, se non c'e'è l'esecuzione prosegue con il blocco successivo e cosi'così via fino a trovare un break o in ultima istanza la parentesi graffa di chiusura che termina lo switch.
Quindi e' possibile omettere il break in uno o piu'più blocchi se si trae vantaggio da questa prosecuzione nel blocco successivo.Se nessuna costante numerica corrisponde al valore della x viene eseguito il blocco di codice messo dopo i ''':''' della parola default fino alla parentesi graffa di chiusura dello switch. La parola default e il relativo blocco di istruzioni possono essere omessi in questo caso se non ci sono corrispondenze fra la x e i valori costanti dei diversi case non viene eseguito nessun blocco e l'istruzione switch termina e l'esecuzione passa all'istruzione successiva.<br />
 
Nel C le variabili char vengono memorizzate come interi, e'è allora possibile usarle come possibile espressione di scelta, le costanti dei diversi case che simboleggiano dei singoli caratteri vanno scritte fra singoli apici, le variabili costanti se sono stringhe vengono scritte fra doppi apici, se sono dei char fra singoli apici e se sono numeri senza niente. Non possiamo usare delle parole (string) come espressioni di scelta , solo interi o singoli char;<br />
Il programma di prima allora diventa<br />
 
<source lang="c">