Qual è la differenza tra IF-ELSE e SWITCH?

Per favore qualcuno può spiegare questo a me?

  • Solo un puntatore – non avrai molte risposte utili se non si prendono il tempo necessario per la frase la questione.
  • Non importa 🙂 è stato fatto.
  • C’è già una domanda su questo in MODO: Interruttore vs if-else **Modifica**<BR> Come “lc”, ha dichiarato in un commento a questa risposta, la domanda di cui sopra non è un duplicato, ma potrebbe darvi una buona idea del funzionamento e cosa usare se la situazione specifica si verifica.
  • Non proprio un duplicato esatto però. Quello del link è specificamente chiedendo la caduta e utilizzando O l’istruzione if else.
InformationsquelleAutor | 2009-03-25

 

6 Replies
  1. 35

    Sono abbastanza simili, ma ognuno ha un paio di caratteristiche speciali.

    interruttore

    • switch di solito è più compatto rispetto a un sacco di nidificati if else e, di conseguenza, più leggibile
    • Se si omette il break tra due switch casi, si può cadere il caso in molti C-come le lingue. Con if else è bisogno di una goto (che non è molto bello per i tuoi lettori … se il linguaggio supporta goto a tutti).
    • In più lingue, switch accetta solo i tipi primitivi come chiave e costanti casi. Questo significa che può essere ottimizzato dal compilatore utilizzando una tabella di collegamento che è molto veloce.
    • Non è molto chiaro come formato switch correttamente. Dal punto di vista semantico, i casi sono saltate obiettivi (come etichette per goto), che deve essere allineata a sinistra. Le cose peggiorano quando si hanno delle parentesi graffe:

      case XXX: {
      } break;
      

      O dovrebbe parentesi graffe andare in linee di loro? Dovrebbe parentesi graffa di chiusura, andare dietro la break? Come illeggibile sarebbe? ecc.

    • In molte lingue, switch accetta solo solo alcuni tipi di dati.

    if-else

    • if permette di espressioni complesse in condizione di interruttore vuole un costante
    • Non accidentalmente dimenticare il break tra ifs ma non si può dimenticare il else (in particolare durante il taglio n”incolla)
    • accetta tutti i tipi di dati.
    • Una nota per ricordare che in caso di caduta attraverso comportamenti lingua spcific, c felicemente vi permetterà di fare questo, ma c# pone delle restrizioni, cadendo, attraverso un caso di dichiarazione di un altro.
    • uno dei la più grande differenza è il modo in cui si verifica la condizione – con if-else si può solo controllare per la parità, mentre con switch si può fare un po ‘ di più..
  2. 2

    La differenza principale è che switch spedizioni immediatamente per il case in questione, in genere tramite un indicizzati saltare, piuttosto che dover valutare tutte le condizioni che sarebbero necessarie in un if-else catena, il che significa che il codice alla fine della catena si raggiunge più lentamente di codice all’inizio.

    Che a sua volta impone alcune restrizioni sul switch dichiarazione che la if-else catena non ha: non in grado di gestire tutti i tipi di dato, e tutte le case valori dovranno essere costante.

  3. 2

    Differenze Tra if-else e switch

    1. Espressione all’interno di se la dichiarazione decidere se eseguire le istruzioni all’interno del blocco if o in altro blocco. D’altra parte, l’espressione all’interno di istruzione switch decidere caso per l’esecuzione.

    2. Se-esle istruzione controlli per l’uguaglianza nonché per l’espressione logica . D’altra parte, passare i controlli solo per l’uguaglianza.

    3. L’istruzione if restituisce il numero intero, carattere, puntatore o virgola mobile, tipo o di tipo booleano. D’altra parte, istruzione switch valuta solo personaggio o un tipo di dati integer.

    4. Sequenza di esecuzione è come sia economico se blocco l’esecuzione o dichiarazioni in blocco else istruzione execute. D’altra parte l’espressione nell’istruzione switch decidere caso per eseguire e se non si applica una istruzione break dopo ogni caso di eseguire fino alla fine dell’istruzione switch.

    5. Se espressione all’interno di se outs per essere false, dichiarazione all’interno del blocco else viene eseguita. Se l’espressione all’interno di istruzione switch rivelarsi false di default di istruzioni viene eseguito.

    6. È difficile modificare istruzioni if-else, come è noioso traccia in cui la correzione necessaria. D’altra parte è facile modificare le istruzioni switch sono facili da rintracciare.

    in una parola possiamo dire
    switch si comporta un po ‘ più veloce se la dichiarazione altra!!!

  4. 1

    SE altro – usato per prendere una decisioni

    Istruzione Switch – è utilizzato per testare il valore della variabile in base a un elenco di valore a seconda del caso .

  5. 1

    La differenza tra Switch e if-else è qui sotto:

    Questa è la sintassi generale di if-else scala:

    if (condition1) { //Body of if }
        else if (condition2) { //Body of if }
        else if (condition3) { //Body of if }
    else { //default if all conditions return false }
    

    E questa è la sintassi generale per interruttore:

    switch ( variable )
    {
     case <variable value1>: //Do Something
                                                 break;
     case <variable value2>://Do Something
                                                 break;
     default: //Do Something
                    break;
    }
    

    If-else scala è di tipo rigoroso controllo di condizione,
    mentre l’interruttore è di tipo saltare valore cattura.

    Vantaggi di passare if-else scala:

    • Di un’istruzione switch funziona più velocemente rispetto ad un equivalente if-else scala. È perché il compilatore genera una tabella di collegamento di un interruttore a tempo di compilazione. Di conseguenza, durante l’esecuzione, invece di controllare che il caso è soddisfatta, è solo decide qual caso deve essere eseguito.
    • È più leggibile e in confronto a if-else.
  6. -2

    penso che la differenza principale è che in if-else possiamo condizioni di prova.ma non va esattamente nella stessa maniera in switch

Lascia un commento