Istruzioni Condizionali in TypeScript

Istruzioni Condizionali in TypeScript

In questo articolo spiegheremo le istruzioni condizionali in TypeScript.

YouTube Video

Istruzioni If in TypeScript

In TypeScript, un'istruzione if consente il branching, eseguendo il codice se una condizione specificata è true e non eseguendolo se la condizione è false. L'istruzione if ha la stessa sintassi di JavaScript e utilizza la sicurezza dei tipi di TypeScript per eseguire un branching condizionale.

Sintassi di Base

La sintassi di base dell'istruzione if è la seguente.

1if (condition) {
2    // Code to execute if the condition is true
3} else if (anotherCondition) {
4    // Code to execute if the first condition is false
5    // and the another condition is true
6} else {
7    // Code to execute if all conditions are false
8}
  • Se condition è true, il codice nel blocco seguente viene eseguito.
  • Se condition è false e anotherCondition è true, il codice nel blocco seguente viene eseguito.
  • Se nessuna delle condizioni è true, il codice nell'ultimo blocco else viene eseguito.

Esempio 1: Istruzione di base if-else

Nel seguente esempio, verifica se la variabile x è 10 o superiore e restituisce il risultato.

1let x: number = 15;
2
3if (x >= 10) {
4    console.log("x is 10 or greater");
5} else {
6    console.log("x is less than 10");
7}
8// Outputs: x is 10 or greater

Esempio 2: Istruzione if-else if-else

Per verificare più condizioni, utilizza else if per aggiungere branch.

 1let score: number = 85;
 2
 3if (score >= 90) {
 4    console.log("Excellent");
 5} else if (score >= 70) {
 6    console.log("Passed");
 7} else {
 8    console.log("Failed");
 9}
10// Outputs: Passed

Esempio 3: Istruzione if con controllo dei tipi

È anche possibile eseguire un branching condizionale per tipi specifici utilizzando la funzione di controllo dei tipi di TypeScript. Ad esempio, verifica il tipo di una variabile con l'operatore typeof ed esegui un'elaborazione appropriata.

 1let value: any = "Hello";
 2
 3if (typeof value === "string") {
 4    console.log("The value is a string: " + value);
 5} else if (typeof value === "number") {
 6    console.log("The value is a number: " + value);
 7} else {
 8    console.log("The value is of another type");
 9}
10// Outputs: "The value is a string: Hello"

Esempio 4: Istruzioni if annidate

Puoi anche annidare istruzioni if per verificare condizioni complesse.

 1let age: number = 25;
 2let isMember: boolean = true;
 3
 4if (age >= 18) {
 5    if (isMember) {
 6        console.log("You are a member and 18 years old or older");
 7    } else {
 8        console.log("You are not a member but 18 years old or older");
 9    }
10} else {
11    console.log("You are under 18 years old");
12}
13// Output
14// You are a member and 18 years old or older

Operatore ternario (operatore condizionale)

Sintassi

1condition ? valueIfTrue : valueIfFalse

Se vuoi scrivere un'istruzione if in modo più conciso, puoi usare l'operatore ternario.

Esempio

1const number: number = 7;
2const result: string = number % 2 === 0 ? "Even" : "Odd";
3console.log(result); // "Odd"

In questo caso, poiché number è 7, verrà visualizzato Odd.

Riepilogo

  • L'istruzione if è una struttura di controllo fondamentale per determinare quale elaborazione eseguire in base alle condizioni.
  • Puoi gestire più condizioni utilizzando else if.
  • Utilizzando typeof, puoi sfruttare i tipi di TypeScript per il branching condizionale.
  • La gestione di condizioni complesse è possibile con istruzioni if annidate.
  • Puoi anche usare l'operatore ternario per scrivere i rami condizionali in modo conciso.

In TypeScript, l'utilizzo di istruzioni if con attenzione alla sicurezza dei tipi può migliorare l'affidabilità del codice.

Istruzioni Switch in TypeScript

L'istruzione switch in TypeScript è una struttura di controllo utilizzata per diramare il codice in base a più condizioni. Invece di utilizzare istruzioni if-else if per valutare più condizioni, puoi usare un'istruzione switch per scrivere in modo conciso la logica di diramazione basata su valori specifici.

Sintassi di Base

 1switch (expressionToEvaluate) {
 2    case value1:
 3        // Code to execute if the expression evaluates to value1
 4        break;
 5    case value2:
 6        // Code to execute if the expression evaluates to value2
 7        break;
 8    default:
 9        // Code to execute if none of the conditions match
10}

In un'istruzione switch, se il valore specificato in un case corrisponde all'espressione valutata, viene eseguito il blocco case. Fai attenzione perché se non c'è un break, il blocco case successivo viene eseguito consecutivamente. Il blocco default viene eseguito se nessuna delle istruzioni case corrisponde.

Esempio 1: Istruzione switch di base

Nell'esempio seguente viene fornito un numero che rappresenta un giorno della settimana (da 0 a 6) e viene emesso il nome del giorno corrispondente in base a quel valore.

 1let day: number = 3;
 2
 3switch (day) {
 4    case 0:
 5        console.log("Sunday");
 6        break;
 7    case 1:
 8        console.log("Monday");
 9        break;
10    case 2:
11        console.log("Tuesday");
12        break;
13    case 3:
14        console.log("Wednesday");
15        break;
16    case 4:
17        console.log("Thursday");
18        break;
19    case 5:
20        console.log("Friday");
21        break;
22    case 6:
23        console.log("Saturday");
24        break;
25    default:
26        console.log("Invalid day");
27}
28// Outputs: Wednesday

Esempio 2: Esempio con utilizzo di default

default è utile perché si esegue quando nessuna delle istruzioni case corrisponde, consentendo di gestire valori imprevisti.

 1let statusText: string = "pending";
 2
 3switch (statusText) {
 4    case "success":
 5        console.log("Operation succeeded");
 6        break;
 7    case "error":
 8        console.log("An error occurred");
 9        break;
10    case "pending":
11        console.log("Processing");
12        break;
13    default:
14        console.log("Unknown status");
15}
16// Outputs: Processing

Esempio 3: Esecuzione dello stesso processo per più case

Se vuoi eseguire la stessa azione per più istruzioni case, puoi elencarle consecutivamente.

 1let fruit: string = "apple";
 2
 3switch (fruit) {
 4    case "apple":
 5    case "banana":
 6    case "orange":
 7        console.log("This is a fruit");
 8        break;
 9    default:
10        console.log("This is not a fruit");
11}
12// Outputs: This is a fruit

Esempio 4: Comportamento quando il break è omesso

Omettere un break comporta un comportamento di "fall-through" in cui viene eseguito anche il case successivo.

 1let rank: number = 1;
 2
 3switch (rank) {
 4    case 1:
 5        console.log("Gold");
 6    case 2:
 7        console.log("Silver");
 8    case 3:
 9        console.log("Bronze");
10    default:
11        console.log("Not ranked");
12}
13// Outputs:
14// Gold
15// Silver
16// Bronze
17// Not ranked

In questo modo, dopo che un case corrisponde, viene eseguito anche il case successivo, quindi si usa solitamente un break per evitare il fall-through non necessario.

Riepilogo

  • L'istruzione switch è una struttura di controllo che ti consente di scrivere logiche ramificate basate su più condizioni in modo conciso.
  • Ogni case dovrebbe terminare esplicitamente il processo utilizzando break.
  • Il blocco default viene eseguito se nessuno dei case corrisponde.
  • È anche possibile eseguire la stessa operazione per più case.

L'istruzione switch in TypeScript è utile per gestire in modo efficiente più condizioni mantenendo leggibile il codice.

Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.

YouTube Video