if语句:
1 if(表达式)
2 语句
表达式成立则执行语句。若表达式为一个数或可被计算为一个数,则结果不为0时执行语句(c语言中0为假,非0为真)。
双分支用else,多分支加上else if(数量由分支个数决定)
注意:语句超过一行时,若不用{}打包,会被计算机解释为和其他分支共用。甚至使分支结果混乱(例如嵌套if语句中注意事项)。
嵌套if语句(分支中再分支)注意:else与最接近的if配对。例:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
运行结果:无输出。该程序相当于:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
要想打印“haha”,应将第二个if语句用{}包起来。
1.关系操作符 > < = <=小于等于 >=大于等于
!=不等于
==等于(表判断)
关系表达式返回0或1,表示真假
用于if语句:
if(a == b)
语句
若a = b,则执行语句。
注意:
- ==不可写为=(赋值符号),例如a = 10,将10赋值给a
- 关系操作符连用不能达到预期效果,例如a<b<c,不是让b的值在a和c之间,会被计算机解释为(a<b)<c,a<b返回0或1,再判断0或1和c的大小关系,最终返回0或1。要达到预期效果,应:a < b && b < c(&&下文解释)
2.逻辑操作符: &&与 ||或 !非
&& :两个表达式均成立为真(返回1,否则0)。
||:任意一个表达式成立为真。
&&,||的判断均为从左往右。&&和||同时用时,&&比||优先,但最好用括号表示优先运算。
例:
1 if (a < b && (b > c || b > d))
先判断b > c || b > d,返回值(0或1),在判断&&两边
!:
a | !a |
非0 | 0 |
0 | 非0 |
3.条件操作符:exp1 ? exp2 : exp3
exp1为真,则结果为exp2的计算结果;exp2为假,则结果为exp3的计算结果。例;
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = a > b ? a : b;
printf("最大值是%d", m);
return 0;
}