what is the different between if-else and switch statment
(other than syntax)
Answer Posted / mikew
The switch branches on one value only, whereas the if-else
tests multiple logical expressions.
So you could say that the switch is a subset of if-else.
The potential difference if that switch is conceptually an
N-way branch point, whereas the if-else is always a
(repeated) binary branch.
However, if you are checking, say, a return code, against a
varied list of possibilities, then the switch can give
greater clarity to source code - and allow simpler addition
of new cases, making it easier for maintenance, as well as
allowing the compiler to generate simpler code.
Simpler code is possible because it can generate a jump
table to perform the multiple comparisons, i.e. in pseudo-code:
_jump_table:
DEFW case1_address
DEFW case1_value
...
DEFW caseN_address
DEFW caseN_value
DEFW NULL /* terminator */
- search _jump_table for case_value
- branch to corresponding case_address, or take default
action if NULL terminator found instead.
In the special case that case1 ... caseN values are
sequential numbers (maybe with a few gaps) then the table
and code can be further simplified as a simple indexed branch:
_jump_table:
DEFW case1_address
...
DEFW default_address /* fill in any holes !*/
...
DEFW caseN_address
- check value is between case1_value and caseN_value
- subtract case1_value
- load branch address word from _jump_table word-indexed on
previous result
Is This Answer Correct ? | 27 Yes | 14 No |
Post New Answer View All Answers
What is the basic structure of c?
What is a pointer variable in c language?
Why is c used in embedded systems?
How can I sort a linked list?
What is external variable in c?
What is time null in c?
Give basis knowledge of web designing ...
What is fflush() function?
Write a function which takes as parameters one regular expression(only ? and * are the special characters) and a string and returns whether the string matched the regular expression.
Which is an example of a structural homology?
Explain how do you determine the length of a string value that was stored in a variable?
what is the function of pragma directive in c?
Describe the difference between = and == symbols in c programming?
Explain what standard functions are available to manipulate strings?
Write a program to print all permutations of a given string.