C'è qualcosa da dire per mettere il caso "predefinito" di un'istruzione switch prima?

4

Come:

switch (value) {
default:
    something_common()
case 1:
    niche_case()
...
}

eccetera.

Le istruzioni

if-else richiedono un "se" prima e un "altro" ultimo, ma le dichiarazioni switch sono più flessibili nel loro ordine. Penso che sia importante sapere cosa accadrà "normalmente", che default indica.

    
posta EMBLEM 14.05.2016 - 08:35
fonte

1 risposta

5

Mettere l'istruzione default funzionerà prima tecnicamente, ma è un linguaggio molto insolito. IMHO è perché ciò che hai scartato sopra non è il tipico "caso d'uso" per un blocco switch/default . È molto più comune utilizzare il ramo default simile a un'istruzione else , come

switch (value) {
case 1:
    potential_case1()
case 2:
    potential_case2()
case 3:
    potential_case3()
default:
    remaining_cases()
...
}

(per brevità, ho omesso intenzionalmente le dichiarazioni break ).

In effetti, la parola chiave default potrebbe darti un'associazione diversa, ma non dimenticare che questi termini sono stati definiti nel linguaggio C alcuni decenni fa e ereditati da molti altri linguaggi come C ++, JavaScript, Java, C # o PHP - nessuno lo cambierà ora per ragioni storiche e ragioni di retrocompatibilità.

In alcuni altri linguaggi, in cui i creatori linguistici non seguivano un "simile controllo dei termini di flusso come in C" obiettivo, la sezione default è denominata in un modo che esprime l'intenzione di essere un "altro" ramo più chiaramente, come in VB.NET, dove è chiamato Case Else , o Perl , dove effettivamente viene usato il termine else .

    
risposta data 14.05.2016 - 10:07
fonte

Leggi altre domande sui tag