๐ 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
if (condizione) {
// Esegui questo codice se condizione รจ TRUE
}
Esempio Pratico
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
if (condizione) {
// Esegui se TRUE
} else {
// Esegui se FALSE
}
Esempio Pratico
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
if (condizione1) {
// Caso 1
} else if (condizione2) {
// Caso 2
} else if (condizione3) {
// Caso 3
} else {
// Tutti gli altri casi
}
Esempio: Voti Scolastici
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:
๐ 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:
// && (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
- Seleziona il select #trafficColor
- Seleziona il bottone #btnCheckTraffic
- Seleziona i 3 bulbi del semaforo (#redBulb, #yellowBulb, #greenBulb)
- Seleziona il messaggio #trafficMessage
- Aggiungi evento click al bottone
- Usa if/else if/else per controllare il colore selezionato
- Accendi il bulbo corretto (aggiungi classe 'red', 'yellow', 'green')
- Mostra il messaggio appropriato
๐ Struttura HTML da Usare
Ecco gli elementi HTML con cui lavorerai:
<!-- 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>
#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:
<!-- 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>
#quizQuestionNum#quizScore#quizQuestion#quizFeedback
#quizOption0#quizOption1#quizOption2#quizOption3#btnNextQuestion
๐ฎ Il Quiz Live
๐ฎ Quiz JavaScript
Testa le tue conoscenze!
๐ป 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