if...else 条件结构中,如果某个分支只包含一条命令,那么是可以省略大括号{}的。比如上一节的练习,可以简化为:
请注意,如果分支中包含2条以上的命令,是不能省略{}的。
如果 if 和 else 比较多,又省略了{},怎么判断那一个 if 和哪一个 else 是一对呢?请看下面的代码:
当出现多个 if 和 else ,又没有{}来界定范围时,请参考下面2条原则:
①每一个 else 与前面离它最近的 if 配对。按照这个原则,上面示例代码的两个 else 都与第二个 if 配对,这显然是不可能的,于是又有了第二个原则。
②多个 else 都与同一个 if 相近时,最内层的 else 优先配对。这样,第一个 else 处于内层,就与第二个 if 优先配对,第二个 else 只能与第一个 if 配对。上面的示例代码会输出“C”。
根据这两个原则,上面的代码等同于如下的规范代码:
编写条件结构时,尽可能加上 {} 可以省掉不必要的错误和麻烦。
右边的代码省略掉了 if...else 结构的所有{},运行后却什么都不输出。
请给代码合适的位置补上 {} ,使程序能够输出“6”。
根据 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 配对,程序逻辑就发生了改变。
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报