第6课 - 分支语句
if语句分析
·if语句用于根据条件选择执行语句
·else不能独立存在且总是与它最近的if相匹配
·else语句后可以连接其它if语句
if( condition )
{
//statement 1
}
else
{
//statement 2
}
if语句中零值比较的注意点
bool型变量应该直接出现于条件中,不要进行比较;
变量和0比较时,0值应该出现在比较符号的左边;
float型变量不能直接进行0值比较,需要定义精度。
switch语句分析
switch语句对应单个条件多个分值的情形;
case语句的分支必须要有break,否则会导致分支重叠;
default语句有必要加上,以处理特殊情况。
case语句中的值只能是整型或字符型,并且只能是常量。
case语句的排列顺序
按字母或者数字顺序排列各条语句;
正常情况放在前面,异常情况放在后面;
default语句只用于处理真正的默认情况。
if和switch使用示例:
#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('o'); f2('d'); f2('e'); return 0; }
switch语句和if语句相互替换后的示例
#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('o'); f2('d'); f2('e'); return 0; }
小结:
·if语句适用于复杂逻辑进行判断的情形中
·switch语句适用于对离散值进行判断的情形中
·if和switch语句在功能上可以相互替换
·if语句对于“按片”分支判断的情形更加简洁
·switch语句对于多分支判断的情形更加简洁