# C language

What is the difference between switch statement and if statement?

## Answers and Replies

Borek
Mentor
Let's start from the very beginning. What are they used for? What is the syntax in each case?

Switch: tests the value of a given variable against a list of case values and when a match is found, a block of statements associated with that case is executed.

If Else: If the test value is true, then the true block statements following the if are executed.

Now, the point is that I feel that both are the same and can be used interchangeably.

Am i right?

Here's something you can't do with a switch statement:

Code:
if (x > 10)
{
// Do something
}
else if (x < 0)
{
// Do something else
}
else
{
// etc...
}

So not really interchangeable in quite a few cases. An if can do what a switch can (though maybe less clearly and possibly less easy for the compiler to optimize). But a switch can't do everything an if statement can.

chiro
Switch: tests the value of a given variable against a list of case values and when a match is found, a block of statements associated with that case is executed.

If Else: If the test value is true, then the true block statements following the if are executed.

Now, the point is that I feel that both are the same and can be used interchangeably.

Am i right?

Switch statement compares a result with specific values. The if statement is a more general test that allows you to use more general tests for each if statement and more any subsequent elseif statement.

wow, thanks!