咱们生活里经常会有这样的场景,明天该怎么穿呢,得考虑下具体的天气。如果是晴天,温度还不错,可以穿T恤;如果是阴天,就得穿夹克,当然刮大风就得加一件风衣了。根据不同的情况,经常会有不同处理方式。编程也会遇到这样的情况,提供的数据符合目前的需求,可以实现后续的工作,如果不符合,就得处理其他的安排。所以说编程和生活其实没有界限,可以说编程来源于生活。
在C语言中,处理这种选择场景的语法叫做条件语句,条件语句有两种形式:if else和switch case。其中判断情况的条件可以罗列更为详细具体,选择情况可以根据需要叠加的语法是if else。当然switch case很好用,不过应用场景是判断情况比较多的时候,可以提高代码质量。
那么,我们来聊下怎么用,书写标准:
if (表达式){
语句块1
}else{
语句块2
}
注意啦,上面是语法规范,怎么用具体的细节在下面分析:
1. 语句块:当有若干条语句时,必须用{…}括起来。
2. 表达式:
if语句的表达式一般情况下为逻辑表达式或关系表达式。
如:
if( a == b && x == y ) {
printf(“a=b,x=y”);
}else{
printf(“a!=b, x!=y”);
}
也可以是任意类型(包括整型、实型、字符型、指针类型),表示“真”和“假”的逻辑情况。
例如:if(‘a’) printf(“%d”,’a’);
if(‘3’) printf(“OK!”);
注意:
数值在if里只有“非零”与“零”的用法;
请区分if(x=1)与if(x= =1)的不同,=是赋值符号, ==是逻辑判断符号。
当然规范的形式只适用用于条件逻辑比较单一的情况,以下是一些根据实际情况做出的一些变形形式。
1. 简化形式
if(表达式) {
语句块
}
例如:
if( x>y ) {
printf(“%d”,x);
}
2. 阶梯形式
if(表达式1) 语句块1
else if(表达式2) 语句块2
else if(表达式3) 语句块3
else if(表达式4) 语句块4
...
else 语句块n
例如:
int main(int argc, const char *argv[])
{
int a;
scanf("%d", &a);
if( a<0 ){
printf("a < 0!\n");
}else if( a == 0){
printf("a == 0!\n");
}else{
printf("(a > 0! \n");
}
return 0;
}
3. 嵌套形式
if(表达式){
if(表达式){ 语句块1 }
else{ 语句块2 }
}else{
if(表达式){ 语句块3 }
else{ 语句块4 }
}
例如:
int main(int argc, const char *argv[])
{
int a , b, c;
int max;
scanf("%d%d%d", &a, &b, &c);
if( a >= b ) {
max = a;
if( max < c ) {
max = c;
}
} else {
max = b;
if( max < c ) {
max = c;
}
}
putchar(10);
return 0;
}
这里再提一种特殊情况:
if(表达式){
语句块1;
}
if(表达式){
语句块2
}
if(表达式){
语句块3;
}
...
else{
表达式4;
}
这种情况的条件语句组合中,else要注意是后最后一if结合。