if语句分析
·if语句用于根据条件选择执行语句
·else不能独立存在且总是与它最近的if相匹配不能
·else语句后可以接连其他if语句

·if语句中零值比较的注意点
-bool型(bool为布尔型,只有一个字节),取值false和true变量应该出现于条件中,不要进行比较
-变量和0值比较时,0值应该出现在比较符号左边
-float型变量不能直接进行0值比较,需要定义精度

switch语句分析
·switch语句对应单个条件多个分支的情形
·case语句分支必须要有break,否则会导致分支重叠
·default语句有必要加上,以处理特殊情况(当所有的case都不执行的时候,执行default语句,不要用default处理正常的程序逻辑)

·case语句中的值只能是整型或字符型(绝对不能用1.1,1.2,2.3等浮点型)
·case语句的排列顺序
-按字母或数字排序各条语句
-正常情况放在前面,异常情况放在后面
-default语句只用于处理真正的默认情况

例子6-1:

include "stdio.h"

void f1(int i)
{

if (i < 6){    printf("Failed!\n");}else if ((6 <= i) && (i <= 8)){    printf("Good!\n");}else{    printf("Perfect!\n");}

}
void f2(char i)
{

switch (i){case 'c':    printf("Compile!\n");    break;case 'd':    printf("Debug!\n");    break;case  'o':    printf("object!\n");    break;case  'r':    printf("Run!\n");    break;default:    printf("Unknown!\n");    break;}

}
int main()
{

f1(5);f1(9);f1(7);f2('c');f2('o');f2('d');f2('e');return 0;

}
输出结果:
Failed!
Perfect!
Good!
Compile!
object!
Debug!
Unknown!

例子6-2:

include "stdio.h"

void f1(int i)
{

switch (i < 6){    case 1:        printf("Failed!\n");        break;    default:        switch ( (6 <= i) && (i <= 8) )        {            case 1:                    printf("Good!\n");                break;            default:                printf("Perfect!\n");                break;            }        break;}

}
void f2(char i)
{

if ('c' == i)    printf("Compile!\n");else if('d' == i)    printf("Debug!\n");else if ('o' == i)     printf("object!\n");else if ('r' == i)    printf("Run!\n");else    printf("Unknown!\n");

}
int main()
{

f1(5);f1(9);f1(7);f2('c');f2('o');f2('d');f2('e');return 0;

}
输出结果:
Failed!
Perfect!
Good!
Compile!
object!
Debug!
Unknown!

小结:
·if语句用于复杂逻辑进行判断的情形中
·switch语句适用于对离散型值进行判断的情形中
·if语句和switch语句在功能上可以相互替换
·if语句对于“按片”分支判断的情形更加简洁
·switch语句对于多分支判断的情形更加简洁

狄泰软件学院课程学习