From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- .../reference/statements/switch/index.html | 320 --------------------- 1 file changed, 320 deletions(-) delete mode 100644 files/it/web/javascript/reference/statements/switch/index.html (limited to 'files/it/web/javascript/reference/statements/switch') diff --git a/files/it/web/javascript/reference/statements/switch/index.html b/files/it/web/javascript/reference/statements/switch/index.html deleted file mode 100644 index aef4d668ce..0000000000 --- a/files/it/web/javascript/reference/statements/switch/index.html +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: switch -slug: Web/JavaScript/Reference/Statements/switch -tags: - - JavaScript - - Reference - - Statement - - Web -translation_of: Web/JavaScript/Reference/Statements/switch ---- -
{{jsSidebar("Statements")}}
- -

Il comandoswitch valuta un espressione, confronta il valore dell'espressione con ciascuna delle clausole case ed esegue i comandi (statements) associati alla clausola (case) che verifica il confronto.

- -

Sintassi

- -
switch (espressione) {
-  case valore1:
-    //Comandi eseguiti quando il valore dell'espressione coincide con valore1
-    [break;]
-  case valore2:
-    //Comandi eseguiti quando il valore dell'espressione coincide con valore2
-    [break;]
-  ...
-  case valoreN:
-    //Comandi eseguiti quando il valore dell'espressione coincide con valoreN
-    [break;]
-  default:
-    //Comandi eseguiti quando nessuno dei valori coincide col valore dell'epressione
-    [break;]
-}
- -
-
espressione
-
Un'espressione il cui risultato è confrontato con ogni clausola case.
-
case valoreN
-
Clausola case usata nel confronto con l' espressione.
-
default
-
Una clausola default è facoltativa e, se specificata, la clausola viene eseguita se il valore dell'espressione non corrisponde a nessuna clausola case.
-
- -

Descrizione

- -

Un comando switch per prima cosa valuta espressione; poi cerca la prima clausola case la cui essa ha lo stesso valore del risultato dell'espressione di switch (utilizzando la strict comparison, ===); quindi il comando switch trasferisce il controllo alla clausola case, eseguendone i comandi. Se più clausole case sono verificate dal confronto con l'espressione di switch,  viene scelta la prima che verifica il confronto, anche se le clausole non sono uguali. Se nessuna clausola case risulta verificata dal confronto, il programma cerca la clausola facoltativa default, e se la trova, trasferisce il controllo a questa, eseguendone i comandi. Se non viene trovata alcuna clausola default, il programma continua eseguendo il comando successivo alla fine del comando switch. Convenzionalmente, ma non necessariamente, la clausola default è l'ultima clausola.

- -

Il comando facoltativo break associato a ciascuna etichetta case assicura che, una volta eseguiti i comandi della clausola che verifica l'espressione di switch, il programma interrompa il comando switch e che continui eseguendo il comando successivo. Se il comando break viene omesso, il programma continua l'esecuzione dal comando successivo all'interno del comando di switch, quindi dal primo della successiva clausola case.

- -

Esempi

- -

Utilizzo di switch

- -

Nell'esempio seguente, se expr vale "Banane", il programma confronta il valore con la clausola "Banane" ed esegue i comandi associati. Quando incontra break, il programma interrompe il comando switch ed esegue il comando successivo a switch. Se break fosse omesso, sarebbero eseguiti anche i comandi della clausola "Ciliegie".

- -
switch (expr) {
-  case "Arance":
-    console.log("Le arance costano €1,0 al chilo.");
-    break;
-  case "Mele":
-    console.log("Le mele costano €0.64 al chilo.");
-    break;
-  case "Banane":
-    console.log("Le banane costano €0.92 al chilo.");
-    break;
-  case "Ciliege":
-    console.log("Le ciliegie costano €2.59 al chilo.");
-    break;
-  case "Manghi":
-  case "Papaye":
-    console.log("I manghi e le papaye costano €1.79 al chilo.");
-    break;
-  default:
-    console.log("Spiacenti, non abbiamo " + expr + ".");
-}
-
-console.log("Desidera qualcos'altro ?");
-
- -

Cosa accade se dimentico un break?

- -

Se vi dimenticate un break, lo script partirà dalla clausola il cui criterio è verificato, e proseguirà con la clausola successiva anche se il criterio non era verifcato. Ecco alcuni esempi:

- -
var foo = 0;
-switch (foo) {
-  case -1:
-    console.log('1 negativo');
-    break;
-  case 0: // foo è 0 quindi il criterio è verificato; questo blocco verrà eseguito
-    console.log(0);
-    // NOTA: il break dimenticato sarebbe dovuto essere qui
-  case 1: // manca il comando break in 'case 0:' quindi anche questo blocco sarà eseguito
-    console.log(1);
-    break; // incontra questo break così con proseguirà in 'case 2:'
-  case 2:
-    console.log(2);
-    break;
-  default:
-    console.log('default');
-}
- -

Posso mettere un default in mezzo?

- -

Certo che puoi! JavaScript passerà al default se non troverà nessun criterio corrispondente:

- -
var foo = 5;
-switch (foo) {
-  case 2:
-    console.log(2);
-    break; // incontra un break, quindi non procederà automaticamente su "default:"
-  default:
-    console.log('default')
-    // non c'è un break, quindi verrà eseguito anche il contenuto di "case 1:"!
-  case 1:
-    console.log('1');
-}
- -

Funziona anche se metti default prima di ogni altra clausola.

- -

Riscrivere molteplici istruzioni If con Switch

- -

Di seguito viene fornito un esempio:

- -
var a = 100;
-var b = NaN;
-switch (true) {
-  case isNaN(a) || isNaN(b):
-    console.log('NaNNaN');
-    break;
-  case a === b:
-    console.log(0);
-    break;
-  case a < b:
-    console.log(-1);
-    break;
-  default:
-    console.log(1);
-}
- - - -

Metodi per i case con più criteri

- -

I sorgenti per questa tecnica possono essere scaricati qui:

- -

Switch statement multiple cases in JavaScript (Stack Overflow)

- -

Multi-case - operazione singola

- -

Questo metodo si avvale del fatto che se non c'è un break break prima di un comando di case continuerà eseguento il successivo comando di case ingnorando se verifica il criterio di esecuzione. Vedi la sezione  "Cosa accade se dimentico un break?"

- -

Questo è un esempio di un comando di switch a singola operazione sequenziale, dove quattro valori diversi realizzano la stessa cosa.

- -
var Animale = 'Giraffa';
-switch (Animale) {
-  case 'Mucca':
-  case 'Giraffa':
-  case 'Cane':
-  case 'Maiale':
-    console.log('Queso animale anndrà sull'Arca di Noè.');
-    break;
-  case 'Dinosauro':
-  default:
-    console.log('Questo animale non andrà.');
-}
- -

Multi-case - operazioni concatenate

- -

Questo è un esempio di un comando di switch ad operazione multipla sequenziale, dove, a seconda del numero intero fornito, si ricevono diversi output. Mostra come sia possibile sfruttare l'ordine in cui sono scritte le clausole, e come non debbano essere numericamente in sequenza. In JavaScript, si possono anche inserire definizioni di stringhe nei comandi case.

- -
var foo = 1;
-var output = 'Output: ';
-switch (foo) {
-  case 10:
-    output += 'quindi ';
-  case 1:
-    output += 'quale ';
-    output += 'è ';
-  case 2:
-    output += ' il tuo ';
-  case 3:
-    output += 'nome';
-  case 4:
-    output += '?';
-    console.log(output);
-    break;
-  case 5:
-    output += '!';
-    console.log(output);
-    break;
-  default:
-    console.log('Per favore prendere un numero da 1 a 5 o 10!');
-}
- -

Output per questo esempio:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValoreTesto di log
foo è diverso da 1, 2, 3, 4, 5 or 10Per favore prendere un numero da 1 a 5 o 10!
10Output: quindi quale è il tuo nome?
1Output: quale è il tuo nome?
2Output: il tuo nome?
3Output: nome?
4Output: ?
5Output: !
- -

Specifiche

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificheStatusCommento
{{SpecName('ES3')}}{{Spec2('ES3')}}Definizione iniziale. Relaizzata in JavaScript 1.2
{{SpecName('ES5.1', '#sec-12.11', 'switch statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-switch-statement', 'switch statement')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-switch-statement', 'switch statement')}}{{Spec2('ESDraft')}}
- -

Compatibilità dei browser

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

Vedi anche

- - -- cgit v1.2.3-54-g00ecf