分类: C/C++
2014-07-20 19:56:39
#include
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);
f2('o');
f2('d');
f2('e');
}
运行结果:
Failed!
Perfect!
CompileCompileCompile
Debug
Uknown
********************************************************
if语句中零值比较的注意点:bool型变量应该直接出现于条件中,不要进行比较。c语言的真假由0非0决定
例如:
#include
typedef enum _bool
{
false=0,
true=1
}bool;
int main()
{
bool b;
int i=-1;
if(i)
{
printf("ok\n");
}
else
{
printf("error\n");
}
return 0;
}
运行结果
ok
如果改成这样:
#include
typedef enum _bool
{
false=0,
true=1
}bool;
int main()
{
bool b=true;
int i=-1;
if(b)
{
printf("ok\n");
}
else
{
printf("error\n");
}
return 0;
}
运行结果
ok
如果改成这样:
#include
typedef enum _bool
{
false=0,
true=1
}bool;
int main()
{
bool b;
int i=-1;
if(b==1)
{
printf("ok\n");
}
else
{
printf("error\n");
}
return 0;
}
运行结果
error
********************************************
普通变量和0值(其他整数)比较时,0值(或其他整数)应该出现在比较符号左边。因为这样可以避免失误检查不出程序debug。
float型变量不能直接进行0值比较,需要定义精度。这是计算机离散特性决定的。例如:
#include
typedef enum _bool
{
false=0,
true=1
}bool;
#define E 0.0000001
int main()
{
bool b;
int i=-1;
float f=5.0;
if((5-E<=f)&&(f<=5+E))
{
printf("ok\n");
}
else
{
printf("error\n");
}
return 0;
}
运行结果:
ok