引入根据比较的结果,决定做、还是不做某些动作,就要用到if语句。
一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果为true,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。
1.if语句
if(条件){ }
2.if else
if(条件){ }
else { }
条件为关系表达式
关系运算为1时,执行{ }
注意
1.if的判断条件为赋值语句
if(a=2)
{
b=2;
c=4;
}
else d=3;
这个语句没有语法错误(可能会有警告),是可以执行的。
但是这个语句永远没有机会执行else部分。
a=2赋值表达式的计算结果就是2,当这个表达式出现在if语句逻辑表达式位置上的时候,它的计算结果是被当作逻辑值处理的,在C语言中用整型数表示逻辑量,非零表示“真”,所以这是一个永真式;这个if的逻辑条件永远不会为假。
2.强调if else后面要加{ },即使只有一个语句
不加大括号,默认执行if()后面的第一条语句或者else后面的第一条语句。如果就是只有一条语句,那不加也没关系。如果有多条语句要执行,那这些语句必须包含在大括号里面。另外,从视觉上来看,大括号有助于快速识别if语句,便于浏览程序。综合视觉友好性和程序功能完整性,养成加大括号的习惯有益无害。
3.if-else语句的嵌套
例如求三个数中最大值
#include<stdio.h>
int main()
{ int a,b,c,max;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
if(a>c)
{
max=a;
}
else
{
max=c;
}
}
else
{
if(b>c)
{
max=b;
}
else
{
max=c;
}
}
printf("最大值是%d",max);
return 0;
}
else总是最近的那个if匹配,避免逻辑错误,所以要加{}
编译器中会有缩进格式,不能暗示else的if是哪个
4.级联的if-else
#include<stdio.h>
int main()
{ int f,x;
scanf("%d",&x);
if(x<0){
f=x+1;
}else if(x==0){
f=0;
}else if(x<9){
f=x*2;
}else if(x>20){
f=2+x;
} else{
f=x*100;
}
printf("f=%d",f);
return 0;
}
将else if 连在一起,省略掉else后面的{}以及空格
目的 省空间,容易看,不至于眼花缭乱
###单一出口,输出