else if 全改成if有问题吗;
#include<stdio.h>int main()
{
float a,total;
scanf("%f",&a);
if(a<=110) total=0.5*a;//改成全部if语句
else if(a<=210&&a>110) total=0.5*110+(a-110)*0.55;
else if(a>210) total=0.5*110+0.55*100+(a-210)*0.7;
printf("%.2f",total);
return 0;
}
将所有的else if改为if对结果没影响;else if有什么用,为什么不直接写if??? 本帖最后由 两手空空儿 于 2022-10-24 16:19 编辑
else 是表示除去前面if里的【所有】情况,上面的程序还可以如下写:
#include<stdio.h>
int main()
{
float a,total;
scanf("%f",&a);
if(a<=110)
total=0.5*a;
else if(a<=210)
total=0.5*110+(a-110)*0.55;
else
total=0.5*110+0.55*100+(a-210)*0.7;
printf("%.2f",total);
return 0;
}
在else里再加if,又把条件限制的很精确的时候,不用else也没问题 在这个代码里确实改成if没啥问题
但是else if 更有逻辑性一点
用else if 减少逻辑运算次数 本帖最后由 jackz007 于 2022-10-24 16:40 编辑
if、if、if 和 if 、else if、else if 的区别是,前者是三个独立的判断,不具有排它性,而后者是一个整体,只要满足了其中的一个条件分支,就不会再测试其它的条件分支。
就本例而言,三个分支的条件本身是闭合且排它的,所以,使用 3 个 if 与使用 1 个 if 2 个 else if 没有任何区别。
页:
[1]