TypeScript - Cambia ... istruzione case
Il switch istruzione valuta un'espressione, abbina il valore dell'espressione a una clausola case ed esegue le istruzioni associate a quel caso.
Sintassi
switch(variable_expression) {
case constant_expr1: {
//statements;
break;
}
case constant_expr2: {
//statements;
break;
}
default: {
//statements;
break;
}
}
Il valore di variable_expression viene verificato rispetto a tutti i casi nello switch. Se la variabile corrisponde a uno dei casi, viene eseguito il blocco di codice corrispondente. Se nessuna espressione case corrisponde al valore di variable_expression, viene associato il codice all'interno del blocco predefinito.
Le seguenti regole si applicano a un'istruzione switch:
Può esserci un numero qualsiasi di istruzioni case all'interno di uno switch.
Le istruzioni case possono includere solo costanti. Non può essere una variabile o un'espressione.
Il tipo di dati di variable_expression e di espressione costante devono corrispondere.
A meno che non si inserisca un'interruzione dopo ogni blocco di codice, l'esecuzione fluisce nel blocco successivo.
L'espressione case deve essere univoca.
Il blocco predefinito è facoltativo.
Diagramma di flusso
Esempio: switch ... case
var grade:string = "A";
switch(grade) {
case "A": {
console.log("Excellent");
break;
}
case "B": {
console.log("Good");
break;
}
case "C": {
console.log("Fair");
break;
}
case "D": {
console.log("Poor");
break;
}
default: {
console.log("Invalid choice");
break;
}
}
L'esempio verifica il valore del grado variabile rispetto all'insieme di costanti (A, B, C, D ed E) ed esegue i blocchi corrispondenti. Se il valore nella variabile non corrisponde a nessuna delle costanti menzionate sopra, verrà eseguito il blocco predefinito.
Durante la compilazione, genererà il seguente codice JavaScript:
//Generated by typescript 1.8.10
var grade = "A";
switch (grade) {
case "A": {
console.log("Excellent");
break;
}
case "B": {
console.log("Good");
break;
}
case "C": {
console.log("Fair");
break;
}
case "D": {
console.log("Poor");
break;
}
default: {
console.log("Invalid choice");
break;
}
}
Il codice precedente produrrà il seguente output:
Excellent