if 和 else if
在C语言中,if和else if有什么区别?我觉得if连续排下来好像和else if没什么差别,两者的使用范围有什么区别?如何区别使用? else if 是在 if 条件不成立后判断的,else if 必须跟在 if 后面 本帖最后由 小甲鱼的铁粉 于 2020-10-31 11:23 编辑比如这两个程序
if(x>=1)
printf("x大于1");
else if(x <= 0)
printf("x小于0");
else
printf("x大于零小于1");
if(x>=1)
printf("x大于1");
if(x <= 0)
printf("x小于0");
if(x>0&&x<1)
printf("x大于零小于1");
当x=2时,他们的实现效果是一样的,但第一个实际上更快,因为当if达成时后面的else if和else就不再判断了,就直接跳过了;
而第二个程序进入了第一个if后会继续判断剩余的两个if。所有要根据程序的逻辑去使用else if还是if,让自己的程序逻辑易懂{:10_297:} 3楼正解
我再给翻译一下 if和else if
if 如果。。。
else if 被上面的“如果”排除后,剩下的数据或事件,再“如果。。。”
else 其他的。。。 本帖最后由 jackz007 于 2020-10-31 14:01 编辑
#include <stdio.h>
int main(void)
{
int score ;
for(;;) {
printf("请输入你的分数(0 ~ 100):") ;
scanf("%d" , & score) ;
if(score >= 0 && score <= 100) break ;
else printf("无效分数,请重新输入!\n\n") ;
}
if(score <= 100 && score > 90) printf("你的成绩是 A\n") ; // 91 - 100
else if(score <= 90 && score > 80) printf("你的成绩是 B\n") ; // 81 - 90
else if(score <= 80 && score > 70) printf("你的成绩是 C\n") ; // 71 - 80
else if(score <= 70 && score > 60) printf("你的成绩是 D\n") ; // 61 - 70
else printf("你的成绩是 E\n") ; //0 - 60
}
体会一下这个代码会比较清楚一些。
score 值的变化范围是 0 - 100,根据 score 的实际数值把成绩划分为 A - E 一共 5 个等级,在进行值的判定的时候,使用的就是 if ... else if ... else 的分段判断,重要的是,各个分段的条件必须能够无缝拼接,而且,彼此之间互不重叠。这样,成绩就会 "自动" 对号入座。
页:
[1]