目录
一、在if语句中条件后面一定不能加分号
#include <stdio.h>
int main()
{
int age =0;
double salary=4000;
age=55;
if (age>60);
{
salary=salary*1.2;
printf("%f\n",salary);
}
return 0;
}
在程序中分号表示一个语句的结束,所以在上面这个程序中,判断条件(age>60)后面加上了分号,就表明if(age>60);是一个完整的语句。只不过在这里age不论是否满不满足条件,他都没有对应的语句来执行。可以看看下面这段代码,这就比较明显了。
int age =0;
double salary=4000;
age=55;
if (age>60)
{
};
{
salary=salary*1.2;
printf("%f\n",salary);
}
return 0;
二、判断条件的==和赋值号=
#include <stdio.h>
int main()
{
int age =0;
double salary=4000;
scanf("%d",&age);
if (age==60)
{
salary=salary*1.2;
printf("%f\n",salary);
}
return 0;
}
这里表示age如果等于60则执行下面的步骤
对比一下下面这个
#include <stdio.h>
int main()
{
int age =0;
double salary=4000;
scanf("%d",&age);
if (age=60)
{
salary=salary*1.2;
printf("%f\n",salary);
}
return 0;
}
这里表示把60赋值给age,不管age输入多少最后的结果都是4000*1.2=4800
注:在if的条件中,0对于if来说是不成立,其它的数字都表示成立,就是if(1),if(-9),if(5)结果都是一样的。
三、if后面养成加大括号的习惯
#include <stdio.h>
int main()
{
int age =0;
double salary=4000;
scanf("%d",&age);
if (age>60)
salary=salary*1.2;
printf("%f\n",salary);
return 0;
}
在这个程序中如果age大于60会输出salary,这是我们希望得到的,但是当age不大于60的时候,他也会输出salary,这就不是我们希望的了。原因是这里没有加大括号,导致printf这段语句已经不属于if了。正确的做法是加上大括号,告诉程序他们是一起的。