这两个if else是一样的吗?


if(表达式1)
{
    ....;
}
else
{
    if(表达式2)
    { 
      ....;
    }
    else
    {
      ....;
    }
}
----------
if(表达式1)
{
    ....;
}
else if(表达式2)
      {
         ....;
      }
      else
      {
        ....;
      }

只有这个我会:
1、2个语句表达的意思和计算步骤都一样;
2、2个语句的使用情况视具体情况和编码规范而定;
3、举个栗子:
3.1、一条三岔路,一般用第二个语句来表达,代码便于阅读。因为结果清晰明了,没必要把结构做复杂。
3.2、一个迷宫,一般用第一个语句来表达,一环套一环,嵌套正合适,代码阅读有层次。
4、自己尝试:一条路第一个路口三条岔路,每条岔路分别还有一个三岔路口。
4.1、通过计算可知全部岔路走完,有九个方向,也就是有9个结果;
4.2、如果用第二个语句来表达,不嵌套就需要重复三遍第二个语句;
4.3、如果用第一个语句来表达,就只需要使用一层嵌套即可;
4.4、结果都能实现,但是在代码阅读和理解上,肯定是使用嵌套的语句更好。
5、该用砖砌的时候用砖砌,该用混凝土浇灌就用混凝土浇灌,编写代码不能只考虑达成目标,还需要考虑整体结构,好比造房子一样。
6、其实我就是造房子的,O(∩_∩)O哈哈~

不一样,第一个只有满足if的条件和不满足if的条件,第二是满足if条件和或者满足else if 条件,和不满足两者条件的

第二种,即使你把else缩进,这个else也是和if,else if 配对的.

不一样,
第一个是两层if嵌套,有两层if,只有把第一层的if判断了,才能判断第二层的if(也就是表达式2),这两层if都是有两个条件判断:if 和 else。
第二个只有一个if语句,但是有多个条件判断(三个条件判断):if,else if,else。

不清楚追问,忘采纳

从逻辑上来说,是一样的

看表达式,可以一样,可以不一样。

不一样的,第一个是嵌套的,第二个是并列的。

主要看你的逻辑了,两者可以实现同样的效果,也可以实现不一样的效果

前一个属于包含,后一个只是格式没对齐,ctrl+a,ctrl+i就好

不一样,第一个是在else下嵌套完成的,第二个是同级别判断的

不太一样,第一个是if条件,其他的就是else;
第二个是if条件1,else if条件2,其他的结果都为else.

不一样!
if(A>5)
{
printf("A为大于5的正数");
}
else //剩下的A是小于等于5
{
if(A {
printf("A为负数");
}
else
{
printf("A大于等于0并且小于5"); //”剩下的A是小于等于5“”里又不小于0的数
}
}
---------- //括号应该这样对齐
if(A>5)
{
printf("A为大于5的正数");
}
else if(A<0)

{
printf("A为负数");
}
else
{
printf("A大于等于0并且小于5");
}


直接一个if,然后else if,最后else结尾不是很好吗。弄得那么复杂干嘛。

不一样,第一个if else 是当表达式1不成立时,才会判断表达式2;第二个是无论表达式1成立还是不成立,都要执行else if来判断表达式2.

结果上来讲应该是一样的

实现的功能是一样的,逻辑也是一样的

从逻辑角度出发,只要逻辑上一致,那就是一致的。写法可以多种多样

不一样,第一种和第二种执行的结果可能不一样

不完全一样的,分别对应于不同的逻辑实现,从功能上是相同的

不一样,第一个只有满足if的条件和不满足if的条件,第二是满足if条件和或者满足else if 条件,和不满足两者条件的

不同的,一个是if-else,另一个是if-elseif,两者的判断是不同的。if-else只在if后有判断语句,满足条件执行if后的语句,不满足执行else后的语句。
而if-elseif对应的if和elseif两者后面都有判断语句,if后有判断语句,满足条件执行if后的语句,不满足执行elseif再进行一次判断,满足判断条件则执行elseif里的语句,不满足则跳出循环。

不一样~ 同时不满足表达式1和表达式2,那么会执行else中的else
若换成下面这一种方式,则不会执行任何语句

不太一样,第一个是if条件,其他的就是else;
第二个是if条件1,else if条件2,其他的结果都为else.

第一个是嵌套\第二个是并列

逻辑完全一样,都是先判是否满足表达式1,再判是否满足表达式2,最后是都不满足的

这边的else都是找最近的if配对的,所以是一样的

先说说时间空间复杂度把,都是O(1)
再来说执行情况把,如果条件一满足,那么执行,如果不满足,都是要判断条件二得,如果条件二满足,那么执行,如果条件二也不满足,两个都是执行最后得else
所以。。。花样再多计算机只认识0110 0110 0110
这个答案是否满意

第一个是如果满足if的条件执行if语句,不满足则执行else语句,第二个是满足if条件或者满足else if 条件,和不满足两者条件的

第一种表达是两层嵌套:在不满足第一层if条件下,执行else,在else条件下执行内层{if(...)else{}};
第二种表达是并列的:在逻辑上其实与第一种表达效果是一样的。
两种的最大区别就是可以少写个{},且结构看起来更清晰。
程序员的语句结构要简洁,比如a=a+1 可以缩写成 a+=1

写法不同,但功能一样

不一样,第一种只有一个条件判断,第二种有多个条件判断

直接一个if,然后else if,最后else结尾 就好了啊

不一样的。第一个是对立的,也就是非0即1.第二个是0,1还有其他的可能

不一样的,第一个是嵌套的,第二个是并列的,实现的功能是一样的

这两个语句实现的功能是一样的

判断式放的合理,实现的功能是一样的

不一样,第一个两种逻辑满足if的条件和不满足if的条件,第二三种逻辑满足if条件,满足else if 条件,和不满足两者条件的

逻辑上是一样的,
你可以把if(是)
else if(否)
else(不明)
来看两个else if结果一样

不一样 第一个相当于SWITCH 有DEFAULT 第二个没有

不一样第一个是不是第一个就是第二个 第二个是第一个不对可以判断下一个 还可以判断下一个 下面还可以跟else if 判断条件 而一个就不行了

不一样啊,嵌套和并列关系

不一样,
第一个是两层if嵌套,有两层if,只有把第一层的if判断了,才能判断第二层的if(也就是表达式2),这两层if都是有两个条件判断:if 和 else。
第二个只有一个if语句,但是有多个条件判断(三个条件判断):if,else if,else。

具体要看你写的内容是啥了,理论上那个来说,执行逻辑是不一样的

是一样的,只是写法不同,逻辑上一样

看你的逻辑了,两个if语句都可以实现相同的功能,也可以实现不一样的功能
但看这两个语句是不一样的

int a = 4;
if (a > -1 && a < 3)
{
    printf("表达式1, a = %d\n", a);
}
else  
{
    if (a > -3 && a < 1) 
    {
      printf("表达式2, a = %d\n", a);
    }
    else//没有其他 
    {
      printf("else, a = %d\n", a);
    }

}

辛辛苦苦码了N多字,都没了.想死的心都有.
经过本人一天的研究,烧死n多脑细胞,结论是两种写法是一样的.
只写一种if else的三种情况,另一种if else 的三种情况,自己写.
突然觉得自己很聪明.嘿嘿.

1)互不相干式:
    int a = 0;// a取 - 2 -1 0 1 2 
    if (a < 0)
    {
        printf("表达式1, a = %d\n", a);
    }
    else 
    {
        if (a > 0)
        {
           printf("表达式2, a = %d\n", a);
        }
        else
        {
          printf("else, a = %d\n", a);
        }
   } 
2)完全包容式   
    int a = 0;// a 取 0 1  2 3 4 
    if (a > 3)
    {
        printf("表达式1, a = %d\n", a);
    }
    else 
    {
        if (a > 1) 
        {
           printf("表达式2, a = %d\n", a);
        }
        else
        {
          printf("else, a = %d\n", a);
        }
   } 
     3) 相交式
        int a = 0;// a 取 -4 -3 -2 -1 0 1 2 3 4
    if (a > -1 && a < 3)
    {
        printf("表达式1, a = %d\n", a);
    }
    else  
    {
        if (a > -3 && a < 1) 
        {
          printf("表达式2, a = %d\n", a);
        }
        else//没有其他 
        {
          printf("else, a = %d\n", a);
        }
   }  

写了一下,想找个证明2个不一样的实例出来结果发现找不到哈。。所以判断为一样的

从功能逻辑上看没有区别, 而且编译成汇编看也没有差异

不一样,第一个不一定有输出,第二个一定会有输出。

完全可以实现一样的效果啊

2个if else功能相同

这个取决于表达式 1 和表达式2的 关系 get it ?

效果是一样的,如果讲到什么底层逻辑判断就不一样了