Blocchi condizionali if-else e switch

In questo video vedremo in dettaglio come funziona un blocco condizionale (o conditional statement) e quando è utile usarlo.
Il blocco condizionale viene usato quando si vuole far eseguire una porzione di codice solo nel caso che una determinata condizione sia vera. A volte si hanno diversi blocchi di codice collegati a diverse possibili condizioni e vogliamo che venga eseguita quella parte di codice, solo nel caso che la condizione ad essa collegata sia vera, mentre tutti gli altri blocchi devono venire ignorati.
Vedremo anche che in alcuni casi, un blocco condizionale può essere sostituito da un operatore ternario.
Nel dettaglio parleremo quindi del blocco condizionale "if" e delle sue varianti con "else if" e "else" e del blocco "switch".
Infine, ci sarà anche un semplice esercizio/sfida da completare, per cercare di fissare i concetti appena imparati (vedremo anche come risolverlo).
Vedremo anche come funziona un prompt (anche se ne riparleremo in video dedicato).

Trascrizione: (click per espandere)
salve a tutti in questo video parlerò
dei blocchi condizionali o dichiarazioni
condizionali e in inglese si chiamano
conditional statement un blocco
condizionale è un blocco di codice che
viene eseguito solamente se una
determinata espressione è vera andiamo a
vedere la sua sintassi allora si usa la
keyword if poi si aprono le prende tonde
e si mette questa espressione che deve
ritornare vero poi se questa espressione
che ritorna vero il blocco di codice
dentro alle parentesi graffe codice
viene eseguito altrimenti il blocco di
codice viene ignorato e si è javascript
e continua a eseguire la il codice fuori
dalla parentesi graffe andiamo a vedere
un esempio commento questo altrimenti
mi da errore
per esempio io posso dichiarare una
variabile numero e gli assegno un 6 poi
vado keyword if metto se numero è
maggiore di quattro esagui questo codice
console log codice vedere
eccolo qui quindi se questa espressione
mi ritorna vero questo blocco di codice
viene eseguito io posso avere quante
righe di codice voglio dentro qui
possono avere anche blocchi di codice
dentro a blocchi di codice
se invece questa espressione è falsa
questo blocco di codice viene ignorato
infatti qui non si vede niente se avessi
altro codice qui sotto verrebbe appunto
eseguito questo codice ignorando questo
codice qui cosa succede se io voglio
eseguire un espressione e determinato
codice se l'espressione vera e un altro
del tipo di codice l'espressione falsa
andiamo a vedere allora se l'espressione
vera usa questo codice se l'espressione
è falsa si usa la keyword else che vuol
dire altrimenti
e si mette codice in caso di false
quindi se l'espressione vero viene
eseguito questo codice se l'espressione
falsa viene eseguito questo codice
andiamo a vedere un esempio codice
allora commentiamo questa sappiamo come
vedete numero che essa è minore di
quattro falso quindi mi viene eseguita
questa riga di codice
se io avessi più opzioni da controllare
si usa "else if" in mezzo quindi si usa
sempre "if" e poi l'espressione se io ho
una seconda opzione da controllare si
usa else if si mette un'altra espressione
chiamiamo l'espressione 2
se io avessi una terza opzione da
controllare
potrei mettere un altro elsie le posso
mettere quanti "else if" voglio non ci
sono problemi codice in caso di
espressione 2 espressione 3 e poi
posso sempre mettere un else alla fine
che nel caso tutte e tre siano false mi
esegue il codice alla fine codice in caso
di false se io avessi più espressioni
vere javascript nel momento in cui trova
la prima vera mi esegue il blocco di
codice che corrisponde a quella
a quell espressione e poi esce dal dal
tutto il blocco di codice quindi se io
questa espressione che è vera e anche
questa espressione che è vera solo
questo codice mi verrebbe seguito perché
nel momento in cui javascript trova la
prima vera esegue il codice poi esce e
non sta più a guardare cosa succede
nelle altre espressioni nel caso io ho
molte "else if" qui
spesso si fa ricorso a un altro tipo di
blocco di codice che si chiama switch
perché il codice switch
condizionale switch se riesce a
compattare un po più il codice rispetto
a mettere molti else if
andiamo a vedere la sua sintassi ecco
qui sintassi keyword switch e
parentesi tonde con l'espressione parentesi
graffe e poi si comincia a mettere caso
1 doppio punto è il blocco di codice da
eseguire blocco codice e poi si mette il
break che è un'altra
un'altra keyword adesso vi spiega un po meglio
siamo in due qui siamo 3 qui e mettiamo
un default codice default
ecco questa è la sintassi del blocco di
condizionale switch praticamente qui si
mette l'espressione e poi l'espressione
la si va a confrontare con la condizione
1 se la condizione 1 ritorna vero allora
questo blocco di codice viene eseguito e
poi con la keyword brake si vuol dire ok
adesso esci dal blocco condizionale se
questa è falsa javascript confronto a
quel caso due severa esegue blocco di
codice e poi con brake e si esce
stessa cosa per interesse tutte e tre
sono false viene eseguito il blocco di
codice dentro al default
andiamo a vedere un esempio e posso
usare l'esempio di prima come qui allora
la chiamo let numero
però abbiamo messo il 6 prima facciamo
switch espressione vado a dire se numero e
qui "case" se il numero è uguale a il
mettiamo 4 e console log metto numero 4
che era un po i casi 5
ecco qui tocchiamo il 6
giusto per farvi capire velocemente e
qui metto console log default punti e
virgola che vi ripeto non solo
obbligatori però è meglio metterli
allora cosa succede io passo il mio
numero dentro al blocco
di espressione e poi javascript comincia
a comparare la mia espressione con i
vari valori allora se questo valore
corrisponde a questo mi esegue questo
blocco di codice se mi e corrisponde a
questo esempio questo blocco di cose se
corrisponde a questo
questo blocco di cose se nessuno dei
precedenti
corrisponde al vero mi viene eseguito
questo blocco di codice
io posso avere quanti "case" voglio dentro
a uno switch non c'è un problema
andiamo a vedere cosa succede numero 6
quindi o mi è stato
eseguito questo blocco di codice se qui
avessi avuto il 4 numero 4 se qui avesse
avuto il 14 default a sarei andato in
questo blocco di codice qui lo switch
per lo switch e può essere usato lo
stesso blocco di codice per più casi
andiamo a vedere e in questo caso mi
faccio anche vi insegno una nuova
maniera per inserire un valore senza
andare ad assegnarlo direttamente noi
dentro al codice lo faccio inserire
attraverso un pop up si usa il prompt e
vi avevo già fatto vedere come funziona
l'alert oggi vi faccio vedere
il prompt inserire numero allora diciamo
che io voglio che l'utente inserisca un
numero dall 1 a 10 e io gli dico se il
numero è un numero primo se il numero è
un numero dispari o sei un numero pari
allora diciamo che
facciamo così numeri primi da 1 a 10 c'è
1 poi c'è il 2
poi c'è tra poi c'è il 5
e poi c'è il 7 quindi numero primo poi
voglio dire se è un numero dispari che
non è primo allora si fa così in questo
caso rimane solo il 9 che è dispari e
non è primo numero dispari in tutti gli
altri casi il numero è pari come vedete
io ho fatto adesso vedrete come funziona
il prompt e andrò a fare inserire un
numero dall'utente dall 1 al 10 se il
numero corrisponde a uno di questi casi
viene eseguito questo codice qui se il
numero corrisponde a 9 viene eseguito
questo codice qui se il numero non
corrisponde a nessun caso viene eseguito
questo codice qui ultima osservazione il
prompt ha anche se accetta numeri quando
li passa alla variabile li passa sotto
forma di stringa quindi io devo andare a
convertire il mio la mia stringa in un
numero perché poi il case me lo va a
confrontare con un numero ho due opzioni
o converto la mia variabile che ha un
numero in sotto forma di stringa la
converte in numero e poi la va da
comparare con i numeri o metto i numeri
sotto forma di stringa se vi ricordate
ci sono diverse maniere per convertire
una stringa in un numero
l'oggetto number si può mettere il più
davanti al nome della variabile si può
usare la
il metodo perseInt parseFloat sono
diversi metodi
diciamo che io voglio in questo caso
voglio mantenere la stringa e la vado a
convertirla con confrontare con altre
stringhe è qui quindi riconverte tutto
in string ecco che adesso vi faccio
vedere il prompt eccolo eccolo qui un
errore strano allora vedete questo
banner che chiede all'utente di inserire
un numero diciamo che io inserisco il 5
poi schiaccia ok
eccolo quel numero primo perché il
valore che ho io ho inserito dentro il
prompt viene salvato dentro questa
variabile e poi si entra dentro al
blocco condizionale 5 un numero primo ed
ecco qui se io vado a ricaricare la
pagina e si passò il 9 numero dispari
quale se io vado a mettere dentro un
numero pari che non è due perché numero
primo numero pari
ecco qui l'operatore ternario
l'operatore ternario ve l'ho già fatto
vedere è l'operatore tornare in alcuni
casi può sostituire un blocco
condizionale come"if else" aspetta che
commento questo diciamo che io voglio
dare un valore a una variabile variabile
stringa la chiamo allora la prima parte
dell'operatore ternario è dove va ammessa
alla condizione quindi mettiamo che 5
maggiore di 6 poi si mette il punto di
domanda e si mette la parte che nel caso
nel caso l'espressione cui ritorni vero
si mette il valore che voglio inserire
dentro la stringa nel caso sia vero
quindi io qui mi metto
vero poi si mettono i due punti e dopo i
due punti si mette il valore che voglio
venga inserito dentro alla variabile nel
caso l'espressione sia falsa e metto
falso ecco qui se dopo io vado a vedere
la output console log di stringa falso
perché 5 non è maggiore di 6 se io qui
avevo il contrario vero perché cinque
minori di sei quindi questo valore mi
era messo dentro alla mia variabile come
vi ho detto l'operatore ternario solo in
alcuni casi può sostituire il blocco
"if else" se come in questo caso si può
fare ci sono casi più complessi in cui
io devo eseguire in parecchie di
righe di codice quindi è meglio usare i
if else una cosa che non vi ho detto
dentro alle espressioni qui vi ho fatto
vedere un esempio molto semplice usando
solo un operatore di maggiore e minore
ma posso avere operato espressione anche
più complesse magari con con l'operatore
and se ve lo ricordate è questo qui
oppure con l'operatore or
insomma qualsiasi espressione l'importante che ritorni un valore booleano
e adesso l'esercizio per voi
l'esercizio per voi ve l'ho preparato
qui sotto
fare inserire un numero intero ad un
utente e quindi potete usare un prompt e
come avete visto prima e poi potete
usare un if else potete usare un
operatore ternario potete usare uno
switch e dipende da quello che preferite
dovete fare un output di una
di una stringa che dice se quel numero è
pari o dispari e se lo stesso numero è
negativo positivo o 0 allora io conto
fino a 3 poi potete mettere in pausa e
poi quando siete pronti rimettete in play
123 eccoci qui andiamo a vedere come si
può risolvere questo esercizio non è
detto che questa è la mia soluzione sia
la migliore ognuno puo' risolvere come vuole allora prompt abbiamo detto o
inserire un numero numero poi crea una
variabile e la chiamo risultato ris e
gli assegni una stringa vuota e poi io vado
a usare un if else allora se numero è
maggiore di zero
vuol dire che il numero è positivo e
quindi io metto ris concateno numero
positivo
se quindi vado ad usare "else if"
se questo numero minore di 0 io so che
ho a che fare con un numero negativo
quindi io qui metto numero negativo
negativo se non è né maggiore ne
minore di zero vuol dire che è zero
quindi qui vado a dire numero 0 e poi
per dire se pari o dispari vado a usare
l'operatore ternario quindi il risultato
simbolo di concatenazione e se vi
ricordate adesso io vado a usare
l'operatore modulo l'operatore modulo se
vi ricordate
mi ritorna il resto di una divisione
allora se il mio numero diviso due
ritorno a 0 vuol dire che al numero pari
quindi quando mi viene ritornato 0 e lo
0 in valore booleano significa falso
quindi io nella parte falsa
dell'operatore del ternario vado ad
aggiungere ed è pari nel caso questo qui
mi ritorni 1, 1 in valore booleano è vero
quindi la parte qui mi viene eseguita ed
dispari
ricapitolando se numeri il numero
inserito diviso due
ritorna a zero perché è un numero pari
mi viene inserita dentro dentro alla mia
variabile questa stringa qui perché 0 in
booleano e falso se numero diviso due
ritorna uno che in booleano è vero mi
viene viene
inserita questa stringa qui andiamo a
vedere nell'output
console log risultato andiamo a inserire
un numero diciamo che voglio inserire il
56 numero positivo ed è pari se io
adesso provo a mettere dentro un numero
negativo diciamo 57 numero negativo
scritto male negativo comunque numero
negativo ed è di sparire se io vado a
metterci dentro lo zero numero zero ed è
pari con questo è tutto
ci sentiamo la prossima
File del video: