Grafico comparativo
Base per il confronto | se altro | interruttore |
---|---|---|
Di base | Quale istruzione verrà eseguita dipende dall'output dell'espressione inside if statement. | Quale dichiarazione verrà eseguita viene decisa dall'utente. |
Espressione | l'istruzione if-else utilizza più istruzioni per più scelte. | l'istruzione switch utilizza la singola espressione per più scelte. |
analisi | if-else statement test per l'uguaglianza e per l'espressione logica. | switch statement test solo per l'uguaglianza. |
Valutazione | se l'istruzione valuta intero, carattere, puntatore o tipo a virgola mobile o tipo booleano. | l'istruzione switch valuta solo il carattere o il valore intero. |
Sequenza di esecuzione | O se l'istruzione verrà eseguita o verrà eseguita un'altra istruzione. | l'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 predefinita | Se la condizione all'interno delle istruzioni if è false, per impostazione predefinita viene eseguita l'istruzione else, 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 ifid else annidata. | È facile modificare casi di interruttori come, sono riconosciuti facilmente. |
Definizione di if-else
Le dichiarazioni if-else appartengono alle istruzioni di selezione in OOP. La forma generale delle dichiarazioni if-else è la seguente
if (espressione) {istruzione (i)} else {dichiarazione (i)}
dove "if" e "else" sono le parole chiave e le dichiarazioni possono essere una singola istruzione o un blocco di istruzioni. L'espressione valuta di essere "true" per qualsiasi valore diverso da zero e per zero valuta "false".
L'espressione in if può contenere un numero intero, un carattere, un puntatore, un punto mobile o può essere un tipo booleano. La dichiarazione else è opzionale 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 all'interno dell'istruzione else vengono eseguite e, nel caso in cui un'altra istruzione non sia stata creata, non viene eseguita alcuna azione e il controllo del programma viene saltato fuori di una dichiarazione if-else.
Ci fa capire con un esempio.
int i = 45, j = 34; se (i == 45 & j == 34) {cout << "scelgo il choclate scuro"; rompere; caso 2: cout << "scegli le caramelle"; rompere; caso 3: cout << "scegli lollypop"; rompere; . . cout default << "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, allora viene eseguito il caso predefinito.
Differenze chiave tra if-else e switch
- Espressione all'interno se l'istruzione decide se eseguire le istruzioni all'interno se il blocco o sotto il blocco else. D'altra parte, l'espressione all'interno dell'istruzione switch decide quale caso eseguire.
- È possibile avere più istruzioni if per una scelta multipla di istruzioni. Nello switch hai solo un'espressione per le scelte multiple.
- L'istruzione ifle controlla l'uguaglianza e l'espressione logica. D'altra parte, passare i controlli solo per l'uguaglianza.
- L'istruzione if valuta 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.
- La sequenza di esecuzione è come una delle istruzioni sotto se il blocco verrà eseguito o le istruzioni in un'altra istruzione di blocco verranno eseguite. D'altra parte l'espressione in switch statement decide quale caso da eseguire e se non si applica una break statement dopo ogni caso verrà eseguita fino alla fine dell'istruzione switch.
- Se l'espressione è interna se i risultati sono falsi, verrà eseguita l'istruzione all'interno del blocco else. Se l'espressione all'interno dell'istruzione switch risulta essere falsa, vengono eseguite le istruzioni predefinite.
- È difficile modificare le istruzioni if-else in quanto è noioso tracciare dove è richiesta la correzione. D'altra parte è facile modificare le istruzioni switch in quanto facili da tracciare.
Conclusione:
L'istruzione switch è facile da modificare in quanto ha creato i casi separati per le diverse istruzioni mentre, nelle istruzioni nidificate if-else diventa difficile identificare le istruzioni da modificare.