2011-09-26 13 views
30

C'è un modo per assegnare due diversi valori del caso allo stesso blocco di codice senza copiare e incollare? Ad esempio, sotto 68 e 40 si dovrebbe eseguire lo stesso codice, mentre 30 non è correlato.dichiarazione switch Javascript: esiste un modo per due casi di eseguire lo stesso codice?

case 68: 
    //Do something 
break; 

case 40: 
    //Do the same thing 
break; 

case 30: 
    //Do something different 
break; 

Non è corretto pensare che qualcosa del genere dovrebbe funzionare (anche se ovviamente non lo è)?

case 68 || 40: 
    //Do something 
break; 

case 30: 
    //Do something else 
break; 

risposta

98

Basta metterli a destra dopo l'altro senza una pausa

switch (myVar) { 
    case 68: 
    case 40: 
    // Do stuff 
    break; 

    case 30: 
    // Do stuff 
    break; 
} 
+0

Sonar lo trova come qualcosa di innaturale, ¿un'altra opzione? –

2
case 68: 
case 40: 
    // stuff 
    break; 
16

Sì, basta mettere i relativi case dichiarazioni accanto all'altro, come questo:

case 40: // Fallthrough 
case 68: 
    // Do something 
    break; 

case 30: 
    // Do something different 
    break; 

Il commento Fallthrough è lì per due motivi:

  • E ' rassicura i lettori umani che lo stai facendo deliberatamente
  • Mette a tacere gli avvertimenti dagli strumenti simili a Lint che emettono avvisi relativi a possibili ricadute accidentali.
+1

Penso che tu abbia dimenticato qualcosa. :) – BNL

+0

@BNL: Oops! Ora risolto - grazie. – RichieHindle

0

Switch cases can be clubbed as shown in the dig.

Inoltre, non è limitata a solo due casi, è possibile estendere a qualsiasi no. dei casi.

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia – slfan

-3

si dovrebbe usare:

switch condition { 
    case 1,2,3: 
    // do something 
    case 4,5: 
    // do something 
    default: 
    // do something 
} 

casi dovrebbero essere separati da virgole.

+0

Questo è semplicemente sbagliato. Non puoi avere più valori in un caso di scambio –

Problemi correlati