原来是我错付了 发表于 2022-10-24 16:12:54

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:16:30

本帖最后由 两手空空儿 于 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也没问题

xiaosi4081 发表于 2022-10-24 16:18:34

在这个代码里确实改成if没啥问题

但是else if 更有逻辑性一点

jhq999 发表于 2022-10-24 16:21:28

用else if 减少逻辑运算次数

jackz007 发表于 2022-10-24 16:36:05

本帖最后由 jackz007 于 2022-10-24 16:40 编辑

      if、if、if 和 if 、else if、else if 的区别是,前者是三个独立的判断,不具有排它性,而后者是一个整体,只要满足了其中的一个条件分支,就不会再测试其它的条件分支。
      就本例而言,三个分支的条件本身是闭合且排它的,所以,使用 3 个 if 与使用 1 个 if 2 个 else if 没有任何区别。
页: [1]
查看完整版本: else if 全改成if有问题吗;