回 帖 发 新 帖 刷新版面

主题:下面这段程序中的else if究竟是两个独立的语句还是一个语句呀

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a=5,b=4,c=3,d=2;
    if(a>b&&b>c)
    {printf("%d\n",d);
    printf("%d,%d,%d,%d\n",a,b,c,d);}
    else if((c-1>=d)==1)
    {printf("%d\n",d+1);
    printf("%d,%d,%d,%d\n",a,b,c,d);}
    else
    {printf("%d\n",d+2);
    printf("%d,%d,%d,%d\n",a,b,c,d);}
    system("pause");
    return 0;
    }
运行结果:
2
5,4,3,2
请按任意键继续. . .
这段程序中的else if究竟是两个独立的语句还是一个语句呀?
为什么后面的else if后不运行了,虽然后面的if条件控制表达式均为真?这是为什么

回复列表 (共1个回复)

沙发

这是一个三层嵌套的语句,做三个选择,只要满足了第一个条件,后面的条件都不运算,如果第一个条件不满足,就运行第二个条件,第二个条件满足,那么后面的条件也不运算了。如果前两个条件都不满足,这才会运行第三个条件。换个好理解的方式,其实就相当于switch语句,做三个选择。

我来回复

您尚未登录,请登录后再回复。点此登录或注册