06

Se Allora (If/Else) ๐Ÿค”

Impara a far prendere decisioni al tuo codice! Le condizioni sono il cuore della logica di programmazione.

โฑ๏ธ 45 minuti ๐ŸŽฏ Livello: Principiante ๐ŸŽฎ 1 Quiz Interattivo

๐Ÿ“š Benvenuto nella Lezione 6!

Bentornato Decision Maker! ๐Ÿค” Finora il tuo codice faceva sempre le stesse cose. Ora imparerai a fargli prendere DECISIONI!

Le condizioni (if/else) sono uno dei concetti piรน importanti della programmazione. Permettono al tuo codice di fare cose diverse in base alla situazione!

In questa lezione creerai un quiz interattivo che reagisce alle risposte dell'utente! ๐ŸŽฎ

๐ŸŽฏ Cosa Imparerai

  • โœ… If base: eseguire codice solo se una condizione รจ vera
  • โœ… If/Else: scegliere tra due opzioni
  • โœ… If/Else If/Else: gestire piรน condizioni
  • โœ… Operatori di confronto (>, <, ===, !==)
  • โœ… Operatori logici (&&, ||, !)
  • โœ… Progetto: Quiz a risposta multipla completo

๐ŸŽฎ Perchรฉ le Condizioni Sono Importanti?

Le condizioni sono usate OVUNQUE:

  • ๐Ÿ” Login: Se password corretta โ†’ entra, altrimenti โ†’ errore
  • ๐Ÿ›’ E-commerce: Se carrello vuoto โ†’ mostra messaggio
  • ๐ŸŽฎ Giochi: Se vita = 0 โ†’ game over
  • ๐Ÿ“ง Form: Se email valida โ†’ invia, altrimenti โ†’ errore
  • ๐Ÿ’ณ Pagamenti: Se saldo sufficiente โ†’ paga

๐Ÿ‘€ Demo: Controllo Etร 

Guarda come le condizioni cambiano il risultato! Inserisci un'etร  e vedi cosa succede:

๐ŸŽ‚ Controllo Etร 

๐Ÿค” Come Funziona?

Il codice usa if/else if/else per decidere:

const etร  = Number(input.value);

if (etร  < 18) {
    // Minorenne
    risultato = 'Sei minorenne! ๐Ÿ‘ถ';
} else if (etร  < 65) {
    // Adulto
    risultato = 'Sei un adulto! ๐Ÿ‘จ';
} else {
    // Senior
    risultato = 'Sei un senior! ๐Ÿ‘ด';
}

๐ŸŽฏ If Base: La Condizione Semplice

L'if esegue codice SOLO se la condizione รจ vera (true).

Sintassi

JavaScript
if (condizione) {
    // Esegui questo codice se condizione รจ TRUE
}

Esempio Pratico

JavaScript
const etร  = 16;

if (etร  < 18) {
    console.log('Sei minorenne!');
}

// Questo viene eseguito perchรฉ 16 < 18 รจ TRUE

๐Ÿ“Œ Quando Usare If Base

  • Quando vuoi fare qualcosa SOLO in un caso specifico
  • Esempio: Mostra banner sconto solo se รจ il compleanno
  • Esempio: Aggiungi classe CSS solo se menu รจ aperto

โ†”๏ธ If/Else: Scegli tra Due Opzioni

if/else ti permette di fare una cosa SE vero, ALTRIMENTI un'altra.

Sintassi

JavaScript
if (condizione) {
    // Esegui se TRUE
} else {
    // Esegui se FALSE
}

Esempio Pratico

JavaScript
const password = 'secret123';
const inputPassword = 'secret123';

if (password === inputPassword) {
    console.log('โœ… Accesso consentito!');
} else {
    console.log('โŒ Password errata!');
}

โœ… Regola d'Oro

Se hai due possibilitร  (sรฌ/no, vero/falso, successo/errore), usa if/else!

๐Ÿ”€ If/Else If/Else: Piรน Condizioni

Per gestire piรน di due casi, usa else if!

Sintassi

JavaScript
if (condizione1) {
    // Caso 1
} else if (condizione2) {
    // Caso 2
} else if (condizione3) {
    // Caso 3
} else {
    // Tutti gli altri casi
}

Esempio: Voti Scolastici

JavaScript
const voto = 85;

if (voto >= 90) {
    console.log('๐Ÿ† Ottimo!');
} else if (voto >= 75) {
    console.log('๐Ÿ‘ Buono!');
} else if (voto >= 60) {
    console.log('โœ… Sufficiente');
} else {
    console.log('โŒ Insufficiente');
}

โš ๏ธ Ordine Importante!

Le condizioni vengono controllate dall'alto verso il basso. Quando una รจ TRUE, le altre vengono saltate!

โš–๏ธ Operatori di Confronto

Per creare condizioni, usi gli operatori di confronto:

===
Uguale
5 === 5 โ†’ true
!==
Diverso
5 !== 3 โ†’ true
>
Maggiore
10 > 5 โ†’ true
<
Minore
3 < 7 โ†’ true
>=
Maggiore o Uguale
5 >= 5 โ†’ true
<=
Minore o Uguale
4 <= 8 โ†’ true

๐Ÿ“Œ Usa === non ==

In JavaScript, usa SEMPRE === (tre uguali) invece di == (due uguali). รˆ piรน sicuro e preciso!

5 == '5'   // true (converte tipi) โŒ
5 === '5'  // false (controlla anche tipo) โœ…

Operatori Logici

Per combinare piรน condizioni:

JavaScript
// && (AND) - Entrambe devono essere vere
if (etร  >= 18 && haPatente === true) {
    console.log('Puoi guidare!');
}

// || (OR) - Almeno una deve essere vera
if (giorno === 'sabato' || giorno === 'domenica') {
    console.log('รˆ weekend!');
}

// ! (NOT) - Inverte il valore
if (!isLoggedIn) {
    console.log('Devi fare login');
}

โœ๏ธ Esercizio Guidato: Semaforo Intelligente

Crea un semaforo che cambia colore e messaggio in base al colore selezionato!

๐Ÿ“‹ Cosa Devi Fare

  1. Seleziona il select #trafficColor
  2. Seleziona il bottone #btnCheckTraffic
  3. Seleziona i 3 bulbi del semaforo (#redBulb, #yellowBulb, #greenBulb)
  4. Seleziona il messaggio #trafficMessage
  5. Aggiungi evento click al bottone
  6. Usa if/else if/else per controllare il colore selezionato
  7. Accendi il bulbo corretto (aggiungi classe 'red', 'yellow', 'green')
  8. Mostra il messaggio appropriato

๐Ÿ“ Struttura HTML da Usare

Ecco gli elementi HTML con cui lavorerai:

HTML - Elementi del Semaforo
<!-- Select colore -->
<select id="trafficColor">
    <option value="red">Rosso</option>
    <option value="yellow">Giallo</option>
    <option value="green">Verde</option>
</select>

<!-- Bottone -->
<button id="btnCheckTraffic">Cambia Semaforo</button>

<!-- Bulbi semaforo -->
<div id="redBulb" class="traffic-light-bulb"></div>
<div id="yellowBulb" class="traffic-light-bulb"></div>
<div id="greenBulb" class="traffic-light-bulb"></div>

<!-- Messaggio -->
<div id="trafficMessage"></div>
๐Ÿ“Œ IDs da Usare nel JavaScript:
  • #trafficColor โ†’ Select colore (valori: "red", "yellow", "green")
  • #btnCheckTraffic โ†’ Bottone
  • #redBulb โ†’ Bulbo rosso
  • #yellowBulb โ†’ Bulbo giallo
  • #greenBulb โ†’ Bulbo verde
  • #trafficMessage โ†’ Messaggio

๐Ÿ’ก Hint: Usa classList.add() e classList.remove() per le classi!

๐Ÿšฆ Semaforo Intelligente

๐ŸŽฎ Progetto Finale: Quiz Interattivo

รˆ il momento del progetto vero! ๐Ÿš€

Creerai un quiz completo con:

  • โœ… 5 domande a risposta multipla
  • โœ… Feedback immediato (giusto/sbagliato)
  • โœ… Punteggio totale alla fine
  • โœ… Colori che cambiano in base alla risposta
  • โœ… Navigazione tra le domande

๐ŸŽฏ Obiettivi del Progetto

  • โœ… Array di domande con risposte
  • โœ… Variabile per tracciare domanda corrente
  • โœ… If/else per controllare risposta
  • โœ… Incrementare punteggio se corretto
  • โœ… Mostrare risultato finale

๐Ÿ“ Riferimento Elementi HTML

Prima di iniziare, ecco tutti gli ID che userai:

HTML - Mappa degli Elementi
<!-- Info Quiz -->
<div id="quizQuestionNum">Domanda 1/5</div>
<div id="quizScore">Punteggio: 0</div>

<!-- Domanda -->
<div id="quizQuestion">Domanda qui...</div>

<!-- Opzioni (4 bottoni) -->
<button id="quizOption0" class="quiz-option">Opzione A</button>
<button id="quizOption1" class="quiz-option">Opzione B</button>
<button id="quizOption2" class="quiz-option">Opzione C</button>
<button id="quizOption3" class="quiz-option">Opzione D</button>

<!-- Feedback -->
<div id="quizFeedback"></div>

<!-- Bottone prossima domanda -->
<button id="btnNextQuestion">Prossima Domanda</button>
๐Ÿ“Œ Guida Rapida IDs:
Display:
  • #quizQuestionNum
  • #quizScore
  • #quizQuestion
  • #quizFeedback
Opzioni:
  • #quizOption0
  • #quizOption1
  • #quizOption2
  • #quizOption3
  • #btnNextQuestion

๐ŸŽฎ Il Quiz Live

๐ŸŽฎ Quiz JavaScript

Testa le tue conoscenze!

Domanda 1/5
Punteggio: 0/5
Quale operatore confronta valore E tipo?

๐Ÿ’ป Completa il Codice del Quiz

Segui i commenti e completa le parti mancanti:

๐ŸŽฏ Conclusione: Sei un Logic Master!

โœ… Recap: Cosa Hai Imparato

  • โœ… If base per una condizione
  • โœ… If/Else per due opzioni
  • โœ… If/Else If/Else per piรน condizioni
  • โœ… Operatori di confronto (===, !==, >, <, >=, <=)
  • โœ… Operatori logici (&&, ||, !)
  • โœ… Quiz interattivo completo con feedback!

๐Ÿš€ Challenge: Vai Oltre!

Migliora il quiz aggiungendo:

  • โฑ๏ธ Timer: Aggiungi countdown per ogni domanda
  • ๐Ÿ† Classifica: Salva i migliori punteggi
  • ๐ŸŽฒ Ordine Casuale: Mescola le domande
  • ๐Ÿ’ฏ Percentuale: Mostra % risposte corrette
  • ๐ŸŽจ Categorie: Quiz divisi per argomento

๐Ÿ“š Prossima Lezione

Nella Lezione 7 imparerai i Confronti e Controlli Avanzati! Validazione form, password strength e molto altro! ๐Ÿ”