Differenza tra if-else e switch

Autore: Laura McKinney
Data Della Creazione: 3 Aprile 2021
Data Di Aggiornamento: 5 Maggio 2024
Anonim
Difference between If and Switch statements [HD]
Video: Difference between If and Switch statements [HD]

Contenuto


"If-else" e "switch" sono entrambi istruzioni di selezione. Le istruzioni di selezione trasferiscono il flusso del programma al particolare blocco di istruzioni in base al fatto che la condizione sia "vera" o "falsa". La differenza fondamentale tra le istruzioni if-else e switch è che l'istruzione if-else "seleziona l'esecuzione delle istruzioni in base alla valutazione dell'espressione in istruzioni if". Le istruzioni switch "selezionano l'esecuzione dell'istruzione spesso in base a un comando da tastiera".

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontose altrointerruttore
Di baseL'istruzione che verrà eseguita dipende dall'output dell'espressione all'interno dell'istruzione if.L'istruzione che verrà eseguita viene decisa dall'utente.
EspressioneL'istruzione if-else utilizza più istruzioni per più scelte.L'istruzione switch utilizza una singola espressione per più scelte.
analisitest dell'istruzione if-else per l'uguaglianza e per l'espressione logica.test switch switch solo per uguaglianza.
Valutazionese l'istruzione valuta numero intero, carattere, puntatore o tipo a virgola mobile o tipo booleano.L'istruzione switch valuta solo il carattere o il valore intero.
Sequenza di esecuzioneSe l'istruzione verrà eseguita o altrimenti verrà eseguita l'istruzione.istruzione switch esegue un caso dopo l'altro fino a quando viene visualizzata un'istruzione break o viene raggiunta la fine dell'istruzione switch.
Esecuzione predefinitaSe la condizione all'interno delle istruzioni if ​​è falsa, per impostazione predefinita l'istruzione else viene eseguita se creata.Se la condizione all'interno delle istruzioni switch non corrisponde a nessuno dei casi, per tale istanza le istruzioni predefinite vengono eseguite se create.
La modificaÈ difficile modificare l'istruzione if-else, se viene utilizzata l'istruzione if-else nidificata.È facile modificare i casi di switch in quanto sono riconosciuti facilmente.

Definizione if-else

Le istruzioni if-else appartengono alle istruzioni di selezione in OOP. La forma generale delle istruzioni if-else è la seguente


if (espressione) {statement (s)} else {statement (s)}

dove "if" e "else" sono le parole chiave e le dichiarazioni possono essere una singola istruzione o un blocco di istruzioni. L'espressione viene valutata come "vera" per qualsiasi valore diverso da zero e per zero viene valutata come "falsa".
L'espressione nell'istruzione if può contenere un numero intero, un carattere, un puntatore, un virgola mobile o può essere un tipo booleano. L'istruzione else è facoltativa in un'istruzione if-else. Se l'espressione restituisce true, le istruzioni all'interno dell'istruzione if vengono eseguite e se restituisce false le istruzioni contenute nell'istruzione else vengono eseguite e, nel caso in cui un'istruzione else non sia creata, non viene eseguita alcuna azione e il controllo del programma salta fuori di un'istruzione if-else.

Cerchiamo di capire con un esempio.

int i = 45, j = 34; if (i == 45 & j == 34) {cout << "i =" <

Definizione di switch

Le istruzioni switch sono un'istruzione di selezione a scelta multipla. La forma generale dell'istruzione switch è la seguente

switch (espressione) {case constant1: statement (s); rompere; costante costante2: istruzione / i; rompere; costante costante3: istruzione / i; rompere; . . istruzioni predefinite; }

Dove l'espressione valuta un numero intero o costanti di caratteri. L'espressione qui valuta solo per l'uguaglianza. L'espressione viene verificata rispetto alle costanti presenti nelle istruzioni del caso. Se viene trovata una corrispondenza, le istruzioni associate a quel caso vengono eseguite fino a quando non si verifica una "interruzione". Poiché l'istruzione break è facoltativa nelle istruzioni case, se l'istruzione break non è presente, l'esecuzione non si interrompe fino alla fine dell'istruzione switch.
L'espressione contiene solo una singola espressione. L'istruzione switch spesso utilizza un comando da tastiera per sceglierne una tra le diverse istruzioni case.

int c; cout << "scegli il valore da 1 a 3"; cin >> i; switch (i) {caso 1: cout << "scegli il cioccolato fondente"; rompere; caso 2: cout << "scegli caramelle"; rompere; caso 3: cout << "scegli lollypop"; rompere; . . default cout << "non scegli nulla"; }

Qui, il valore di "i" deciderà quale caso deve essere eseguito, se un utente fornisce il valore di "i" diverso da 1, 2 o 3, viene eseguito il caso predefinito.

  1. Espressione dentro if istruzione decide se eseguire le istruzioni dentro if blocco o sotto blocco else. D'altra parte, l'espressione all'interno dell'istruzione switch decide quale caso eseguire.
  2. Puoi avere più istruzioni if ​​per una scelta multipla di istruzioni. In cambio hai solo un'espressione per le scelte multiple.
  3. L'istruzione If-esle verifica l'uguaglianza e l'espressione logica. D'altra parte, cambia i controlli solo per l'uguaglianza.
  4. L'istruzione if valuta numero intero, carattere, puntatore o tipo a virgola mobile o tipo booleano. D'altra parte, l'istruzione switch valuta solo il carattere o un tipo di dati intero.
  5. La sequenza di esecuzione è come una delle istruzioni sotto se il blocco verrà eseguito o le istruzioni sotto il blocco verranno eseguite. D'altra parte l'espressione nell'istruzione switch decide quale caso eseguire e se non si applica un'istruzione break dopo ogni caso, verrà eseguita fino alla fine dell'istruzione switch.
  6. Se espressione dentro se si scopre che è falsa, verrà eseguita l'istruzione dentro il blocco else. Se l'espressione all'interno dell'istruzione switch risulta falsa, vengono eseguite le istruzioni predefinite.
  7. È difficile modificare le istruzioni if-else poiché è noioso tracciare dove è richiesta la correzione. D'altra parte, è facile modificare le istruzioni switch in quanto sono facili da tracciare.

Conclusione:

L'istruzione switch è facile da modificare in quanto ha creato casi separati per diverse istruzioni mentre, nelle istruzioni if-else nidificate diventa difficile identificare le istruzioni da modificare.