Eposodio 150: Svelto! Accendi!

Trascrizione del fumetto

Quadro 1.
Ludd: Quindi, qual è l’altro tipo di istruzione condizionale?
Kodu: L’istruzione “switch” che permette di verificare una variabile rispetto a un gran numero di valori …

Quadro 2.
Kodu: .. ed eseguire una parte o un’altra del codice di programmazione a seconda del valore.
Ludd: Cosa succede se nessuno dei valori corrisponde?

Quadro 3.
Kodu: Cosa vuoi dire con “cosa succede”? Perché dovresti programmarlo?
Baltie: Io penso Ludd…

Quadro 4.
Kodu: Stai interrompendo di nuovo.
Laby: Lascialo parlare, Kodu. Forse anche tu potresti imparare qualcosa. Va avanti, Baltie.

Quadro 5.
Baltie: Umm… l’istruzione “switch” ha di solito una sezione di default che esegue una parte specifica del codice se nessuno degli altri casi viene soddisfatto.

Quadro 6.
Kodu: Oh sì, questo ha senso… grazie, Baltie.
Baltie: Prego!

Nascondere la trascrizione

Nella nostra lingua per favore!

L’istruzione “switch” rende la scrittura di istruzioni condizionali più facile eliminando la necessità di scrivere più istruzioni “if” per verificare i valori di una variabile. Diamo un’occhiata a un esempio. Come in precedenza questo esempio non rappresenta alcun particolare linguaggio di programmazione. Start Program

Int firstNum Int secondNum Int result String operation

Bool answerExists = true

Main {

Print “Enter first number:”
Input firstNum
Print “Enter second number:”
Input secondNum
Print “Enter ‘+’ to add or ‘-‘ to subtract:”
Input operation

result = Calculator(num1, num2, operation)

if (answerExists) {
Print “The result of your calculation is: “ + result
}
Else {
Print “Invalid math operator was entered.”
}

}

Int Calculator(Int num1, Int num2, String operator) {

Int answer = 0

Switch (operator) {

Case “+” :
answer = num1 + num2
break
Case “-” :
answer = num1 – num2
break
Default :
answerExists = false
break
}

Return answer

}

End Program

Diamo uno sguardo al nuovo codice. Bool answerExists = true

“Bool” è l’abbreviazione di Booleano, un tipo di dato che può assumere uno dei due valori, vero o falso. Questa variabile può agire come un semplice interruttore on / off; fare una cosa se è vero, fare qualcosa di diverso se non lo è. Qui la variabile viene inizializzata, o impostata su un valore predefinito vero (true). Questo valore può essere modificato dal programma, come si vedrà in seguito.

Proseguiamo nell’esempio, con la definizione della funzione “Calculator “(calcolatrice). Int Calculator(Int num1, Int num2, String operator) {

Indipendentemente da quanti parametri richiede in ingresso, una funzione può restituire solo un valore. (Ci sono tipi di dati strutturati che possono contenere dati dello stesso tipo. Un array o vettore di interi è un esempio.) Questa funzione ha bisogno di tre parametri, due di tipo “Int” (intero) e uno del tipo “String” (stringa), e restituisce un valore di tipo “Int”.      Int answer = 0

La dichiarazione di una variabile all’interno di una funzione limita il campo di applicazione della variabile all’interno di tale funzione. Ciò significa che, sebbene la variabile “answer” venga inizializzata al valore predefinito “0” potrà cambiare all’interno della funzione “Calculator” e verrà passata a “Main” attraverso la funzione “Return”, come vedremo in seguito.      Switch (operator)

Il blocco “Switch” è il secondo metodo più comunemente usato per la programmazione condizionale. Si osserva una variabile, in questo caso “operator” e si eseguono determinate operazioni a seconda del suo valore.           Case “+” :
answer = num1 + num2
break
Case “-“ :
answer = num1 – num2
break

Questo blocco di codice esegue una serie di compiti sulla base del valore della variabile “Switch”. Se il valore di “operator” è “+” si sommano i valori “num1” e “num2” passati alla funzione “Calculator” dalla funzione “Main”. Se è “-” si sottrae “num2” da “num1”. “break” significa semplicemente che, se il programma ha trovato una corrispondenza non deve preoccuparsi di verificare gli altri casi.           Default :
answerExists = false
break

Se il valore di “operator” non corrisponde a uno di quelli specificati, viene eseguita l’istruzione compresa nella clausola default. Si noti come questa parte di codice modifica il valore di “answerExists” da true (vero, definito all’inizio del programma) a false (falso). Ciò determinerà quale delle affermazioni contenute nella sezione “If” del “Main” verrà eseguita.      Return answer

Come si è visto in un esempio precedente, questa linea restituisce il valore di “answer” (risposta) alla funzione “Main”. Anche se “Switch” esegue il valore di default, e non assegna un nuovo valore a “answer”, verrà restituito il valore 0 (zero) a “Main”. La ragione di questo è che avevamo impostato “answer” uguale a 0 al momento in cui è stato dichiarato. Ciò è stato necessario perchè la funzione “Calculator” deve restituire un numero intero. Se così non fosse, il programma potrebbe comportarsi in modo imprevisto, o addirittura bloccarsi.      result = Calculator(num1, num2, operation)

if (answerExists) {
Print “The result of your calculation is: “ + result
}
Else {
Print “Invalid math operator was entered.”
}

Il valore di ritorno della funzione “Calculator” è assegnato a “result”. Inoltre, se il valore di “answerExists” è rimasto invariato in “Calculator”, l’istruzione “if” stamperà il risultato del calcolo. In caso contrario verrà stampato la frase ”Invalid math operator was entered” (passata in ingresso un operatore matematico non ammesso).