if else语句及衍生和注意事项
1.简单的if else语句
if(<条件语句>)
{<执行语句>;}
else
{<执行语句>;}
一些关于花括号的问题:
如果if或else后执行语句只有一句,则可省略 {} ,若多于一句,则必须用 {} 括起来,否则只执行第一句。
示例如下:
#include <stdio.h>
int main(void){
int n;
scanf("%d", &n);
if(n==0)
printf("%d", n);
else
k++;
printf("%d", n);
}
执行程序结果如下:
0
00
因为else后面的执行语句
k++;
printf(“%d”, n);
没有用 {} 括起来,所以只有 k++; 被计入else执行语句内,默认先判断是否符合 if 条件,不符合跳转至 else 并执行,再顺承执行 printf(“%d”, n); ,以至于出现 00 的结果。
所以建议只要遇到 if 和 else 就加花括号,逻辑更清晰,不易出错。
2.if, else if 可与 if, if 互换使用,但某些情况下 if, else if 可以简化程序。
如以下题目:
题目
五级制成绩
题目描述
给定一个百分制成绩,请根据百分制成绩输出其对应的等级。转换关系如下:
90分及以上为’A’;
80-89为’B’;
70-79为’C’;
60-69为’D’;
60分以下为’E’。
输入
一个百分制成绩(0-100的整数)。
输出
输出对应的等级。
如果用 if, if语句实现,程序如下:
#include<stdio.h>
int main(void){
int n;
scanf("%d", &n);
if (n >= 90)
printf("A");
if (n >= 80 && n < 90)
printf("B");
if (n >= 70 && n < 80)
printf("C");
if (n >= 60 && n < 70)
printf("D");
if (n < 60)
printf("E");
}
如果用 if, else if 来实现,程序如下:
#include<stdio.h>
int main(void){
int n;
scanf("%d", &n);
if (n >= 90)
printf("A");
else if (n >= 80)
printf("B");
else if (n >= 70)
printf("C");
else if (n >= 60)
printf("D");
else
printf("E");
}
很明显,相较之下使用 if, else if 就会简化程序。
3.else 总是与它前面最近的 if 配对。
if(a!=b)//①
if(a>b)
printf("a>b\n");//②
else
printf("a<b\n");//③
③和②配对,而不是和①配对。
4.if 后只可加一个 else ,但是可加多个 else if 。