1、if 语句
* 基本语法结构:
* 表达式成立为真,不成立为假
* 在C语言中,0表示假,非零表示真
举例:判断一个数是否为奇数
#include<stdio.h>
int main()
{
int n = 0;
//输入
scanf("%d", &n);
//判断
if (n % 2 == 0)
printf("不是奇数");
return 0;
}
2、if ---else语句
* 基本语法格式:
接下来,我们用同样的代码来举例:判断一个数是否是奇数
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n % 2 == 0)
printf("不是奇数");
else
printf("是奇数");
return 0;
}
3、if---else if---else语句
* 基本语法格式:
注意:这里只是语法格式,并不是说if---else if---else语句仅有4个语句,我们可以根据具体题目具体执行语句个数
*举例:1、判断一个数是正数还是负数
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
if (n > 0)
printf("%d是正数", n);
else if (n < 0)
printf("%d是负数", n);
else
printf("n是0");
return 0;
}
2、百分制成绩转换为五分制成绩
本题要求:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
代码如下:
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d", &i);
if (i >= 90)
printf("A\n");
else if (i < 90 && i >= 80)
printf("B\n");
else if (i < 80 && i >= 70)
printf("C\n");
else if (i < 70 && i >= 60)
printf("D\n");
else if (i < 60)
printf("E\n");
return 0;
}
4、悬空else语句
else总是跟最接近的if语句匹配
代码如下:
#include<stdio.h>
int main()
{
int n = 0;
int m = 0;
scanf("%d %d", &n, &m);
if (n == 1)
if (m == 2)
printf("haha\n");
else
printf("heihei\n");
return 0;
}
上面这个代码是如何执行的呢?
我们分别输入1和2,打印出来的是什么?
分别输入2和2,打印出来的是什么?
分别输入1和0,打印出来的是什么?
很明显,上面的回答是有问题的,这就需要我们认真理解标题下面的那句话了:
else总是跟最接近的if语句匹配
else总是跟最接近的if语句匹配
else总是跟最接近的if语句匹配
所以,我们把代码改造为下面的这样:
#include<stdio.h>
int main()
{
int n = 0;
int m = 0;
scanf("%d %d", &n, &m);
if (n == 1)
if (m == 2)
printf("haha\n");
else
printf("heihei\n");
return 0;
}
这样看起来是不是更清楚了呢?接下来,我们再来回答上面的三个问题。
这是为什么呢?
1、输入1和2
2、输入2和2
3、输入1和0
所以,在我们编写代码的时候,要注意代码的位置,这不仅仅是为了美观,同样也让人更容易理解,就像上面这个代码,如果我们不知道else总是跟最接近的if语句匹配的话,我们仅凭肉眼是无法发现问题的。