if语句分析:
if语句用于根据条件选择执行语句,if语句可以单独出现,else语句不能独立存在且总与与它最近的if相匹配
else语句后可以接其他if语句。
if语句中零值比较的注意点:
1、bool变量应该直接进行判断,不需要进行比较
bool b = TRUE;
if(b)
{
//statement1
}
else{
//statement2
}
2、变量与0进行比较时,0值应该出现在比较符号的左边
int i=0;
if( 0 == i )
{
//statement1
}
else{
//statement2
}
3、float变量不能直接进行零值比较,需要定义精度。(float不精确)
#define EPSINON 0.0000000001
float f = 0.0;
if( (-EPSINON <= f) && (f <= EPSINON) )
{
//statement1
}
else{
//statement2
}
switch语句分析:
switch语句对应单个条件多个分支的情形:
case语句分支必须有break,否则会导致分支重叠;
default语句有必要加上,来处理特殊情况。
case语句中的值只能是整型或者字符型:
case语句的排列顺序:按照字母或者数学顺序排列各条语句;
正常情况放在前面,异常情况放在后面。
default语句只用于处理真正的默认情况。
观察下面代码,判断输出:
#include <stdio.h>
void f1(int i)
{
if(i<6)
{
printf("Failed!\n");
}
else if( (5<i) && (i<=8) )
{
printf("Good\n");
}
else
{
printf("Excellent!\n");
}
}
void f2(char i)
{
switch(i)
{
case 'c':
printf("C\n");
break;
case 'd':
printf("D\n");
break;
case 'f':
printf("F\n");
break;
default:
printf("Default\n");
break;
}
}
int main()
{
f1(1);
f1(6);
f1(9);
f2('c');
f2('d');
f2('f');
f2('h');
return 0;
}
在Linux下使用Gcc编译运行:
delphi@delphi-vm:~/will$ ./a.out
Failed!
Good
Excellent!
C
D
F
Default
if语句和switch语句在某些场合可以互相对换使用:
void f3(int i)
{
switch(i)
{
case 1:
printf("1\n");
break;
case 2:
printf("2\n");
break;
default:
printf("3\n");
}
}
划重点:一定要注意“=”赋值操作符和“==”比较操作符的误操作。建议将常量放在比较运算符的左边。
小结:if语句常用于复杂逻辑进行判断的情形;
switch语句适用于对离散值进行判断的情形中;
if语句和switch语句在功能上可以互相替换;
if语句对于“按片”分支判断的情形更加简洁;
switch语句对于多分支判断的情形更加简洁。