问答详情
源自:3-7 C#中else与if的匹配

输出的是7

老师,我弄好几次,输出的都是7.求讲解

提问者:俊酱 2018-03-26 20:11

个回答

  • 晶晶36
    2020-05-15 09:49:52

    666

  • 小粽子来吃粽子
    2019-10-13 19:05:34

    666

  • Zaman
    2019-02-05 19:06:49

    777

  • 学学看一眼
    2018-07-22 13:32:00

    6666

  • 昵称已被使用1
    2018-03-27 11:05:32

    根据 else 和 if 的配对原则推断,第二个 else 与第三个 if 配对,第一个 else 与第二个 if 配对,第一个 if 没有与之配对的 else 。所以,当第一个 if 的条件为 false 时,不会输出任何内容。

    我们可以把第二个 if 及其分支用 {} 括起来,代码片段如下:

                if (x >= y)
                {
                    if (x >= 5)
                        Console.WriteLine("5");
                }
                else
                    if (y >= 6)
                        Console.WriteLine("6");
                    else
                        Console.WriteLine("7");

    由于第二个 if 进入了 {} 里面,第一个 else 不能与之配对(因为 else 不在那个{}中),只好与第一个 if 配对,程序逻辑就发生了改变。