这两种的if结构的区别是什么?

     if () {

    }
    else if (){

    }
    else if (){

    }
    else{

    }
     if () {

    }
    if (){

    }
    if (){

    }
    else{

    }

第一种结构功能类似于Switch,但需要判断的变量还不适合使用Switch,所以使用它;
第二种结构我比较喜欢,不过这种主要用于退出函数/方法;
比如一个方法有N个参数,我需要逐步验证合法性,不合法就退出(返回默认值或错误码),避免写N个if的嵌套;

第一种if,某一次判断如果为真,那么不会再往下判断。而第二种if,不管判断真假执行到if都会判断,else只和最近的那个if配对,中间的else if只是细化的判断,因为往往会判断多种可能

你把问题想复杂了,C/C++只有if...else,没有什么if... else if
你不过是换行和缩进用的比较另类而已。

 if ()
{

}
else
    if (){

    }
    else 
            if ()
                {
        }
        else
                {
        }

你应该这么缩进和换行才看的清楚

晕,csdn有问题
第一个程序

 if ()
{
}
else
    if ()
    {
    }
    else
        if ()
        {
        }
        else
        {
        }

进一步说,你可以加上花括号,即便只是一个语句

所以最规范的写法

if ()
{
}
else
{
    if ()
    {
    }
    else
    {
        if ()
        {
        }
        else
        {
        }
    }
}

这是第二个程序

if ()
{
}

if ()
{
}

if ()
{
}
else
{
}

缩进和换行一定要按照规范来写,不要用不规范的写法,看下面两个程序:

int i = 1;
if (i == 2);
    cout << "ok";

结果是输出ok

再看下面的程序

 int i = 1;
if (i == 2)
   cout << "out" << endl;
     cout << "i = " << i << endl;

输出什么
输出i = 1

尽管你试图用缩进和换行表达不同的含义,但是编译器根本不管这些的。

第一个相当于分支判断,第二个可以说没有分支,只是单纯的if判断

第一种从上到下,只要条件成立,下面的if语句就不会在执行,而第二种是每一种if语句都会执行,从系统运行的时间来讲,第一种比较合理。

if else 是或的关系只会执行其中一种情况,if if是或与and的关系,满足情况的都会执行

第一种 判断为真 执行 否则跳到else后面再判断 为真 执行 否则再跳

第二种 判断 判断 判断 依次判断 都为假后 再跳到else后执行

{}就相当于数学公式中的()

就这么说吧,假如第一个if(){}为真,进入了,那么后面的if else(){}和else{}都不会进行判断了。(可以他们实际上为一条语句,只会进行其中一个)
而第二个的话,不管哪个if(){}为真,都会去判断其它的if(){}(他们互不相关,各玩各的)

编码优选第一种方式,第二种方式圈复杂度高。