Diagramă de comparație
Bazele comparației | if-else | intrerupator |
---|---|---|
De bază | Ce declarație va fi executată depinde de ieșirea expresiei din interiorul if. | Ce declarație va fi executată este decisă de utilizator. |
Expresie | if-else declarația utilizează instrucțiuni multiple pentru mai multe opțiuni. | switch declarația foloseste o singură expresie pentru mai multe opțiuni. |
Testarea | dacă-alt test de declarație pentru egalitate, precum și pentru expresia logică. | comanda test de comutare doar pentru egalitate. |
Evaluare | dacă declarația evaluează integerul, caracterul, pointerul sau tipul punctului de tip floating sau tipul boolean. | comanda de comutare evaluează numai valoarea caracterului sau a întregului număr. |
Secvența executării | Fie dacă instrucțiunea va fi executată, fie executarea instrucțiunii. | comanda execută un caz după altul până când apare o declarație de pauză sau se ajunge la sfârșitul instrucțiunii de comutare. |
Execuție implicită | Dacă condiția din interiorul declarațiilor este falsă, atunci, în mod implicit, instrucțiunea else se execută dacă este creată. | Dacă condiția din declarațiile comutatorului nu se potrivește cu nici un caz, pentru acea instanță, instrucțiunile implicite sunt executate dacă sunt create. |
Editarea | Este dificil să editați instrucțiunea if-else dacă se utilizează instrucțiunea if-else imbricată. | Este ușor să editați cazurile de comutare deoarece acestea sunt recunoscute cu ușurință. |
Definiția if-else
Instrucțiunile if-else aparțin declarațiilor de selecție din OOP. Forma generală a instrucțiunilor if-else este după cum urmează
dacă (expresie) {declarație (s)} altceva {declarație (s)}
unde "dacă" și "altceva" sunt cuvintele cheie, iar instrucțiunile pot fi o singură declarație sau un bloc de declarații. Expresia se evaluează a fi "adevărată" pentru orice valoare care nu este zero și pentru zero se consideră a fi "falsă".
Expresia în instrucțiunea if poate conține un întreg, caracter, pointer, punct plutitor sau poate fi un tip boolean. Instrucțiunea else este opțională într-o instrucțiune if-else. În cazul în care expresia returnează adevărat, instrucțiunile din interiorul dacă este executată, iar dacă returnează falsul, instrucțiunile din interiorul altei instrucțiuni sunt executate și, în cazul în care o instrucțiune else nu este creată, nu se efectuează nicio acțiune și controlul programului iese a unei instrucțiuni if-else.
Ne permite să înțelegem cu un exemplu.
int = 45, j = 34; dacă (i == 45 & j == 34) {cout << "i jouou alege choclate întunecat"; pauză; cazul 2: cout << "alegeți bomboane"; pauză; cazul 3: cout << "alegeți lollypop"; pauză; . . implicit cout << "nu alegi nimic"; }
Aici, valoarea "i" va decide ce caz va fi executat, dacă un utilizator dă valoarea "i" alta decât 1, 2 sau 3, atunci cazul implicit este executat.
Diferențe cheie între if-else și switch
- Expresia în interiorul declarației decide dacă să execute instrucțiunile în interiorul blocului sau sub alt bloc. Pe de altă parte, expresia din interiorul comenzii switch decide care caz să fie executat.
- Puteți avea instrucțiuni multiple dacă pentru declarații multiple de selecție. În comutator, aveți doar o expresie pentru opțiunile multiple.
- Declarația if-esle verifică atât egalitatea, cât și expresia logică. Pe de altă parte, treceți comenzile doar pentru egalitate.
- Instrucțiunea if evaluează întregul, caracterele, pointerul sau tipul punctului flotant sau tipul boolean. Pe de altă parte, declarația de comutare evaluează numai caracterul sau un tip de date întreg.
- Secvența de execuție este ca orice instrucțiune în cazul în care blocul va executa sau se va executa instrucțiunile din altă declarație bloc. Pe de altă parte, expresia în comanda switch decide ce caz să execute și dacă nu aplicați o declarație de pauză după fiecare caz, va executa până la sfârșitul instrucțiunii switch.
- În cazul în care expresia înăuntru dacă turn-outs-ul este falsă, se va executa o declarație în alt bloc. Dacă expresia în declarația comutatorului se dovedește a fi falsă, se execută declarații implicite.
- Este dificil să editați declarațiile if-else, deoarece este dificil de urmărit unde este necesară corecția. Pe de altă parte, este ușor să editați instrucțiunile de comutare deoarece acestea sunt ușor de urmărit.
Concluzie:
Instrucțiunea switch este ușor de editat deoarece a creat casele separate pentru diferite afirmații, în timp ce în declarațiile embedded if-else devine dificilă identificarea declarațiilor care trebuie editate.