gpt4 book ai didi

c - "if ... else if ... else ..."在语义上与 "if ... else { if ... else ...}"有什么不同吗?

转载 作者:太空狗 更新时间:2023-10-29 15:37:29 25 4
gpt4 key购买 nike

<分区>

相信大家在学习C的时候,都学过这样的语法:

if (condition 1) {
statements
} else if (condition 2) {
statements
} ...
else {
statements
}

但看了之后N1570, § 6.8.4.1 The if statement ,我发现绝对没有谈论链式 else if语句,不像其他提供关键字的语言,如 ElseIfelif为此目的。

据我了解,整个if(...){...}else{...}是一个单独的语句(else 子句可能不存在,这是无关紧要的)。所以在解析的时候,如下代码所示,

if (condition) {}
else
one_statement;
if (condition) {}
else
if (something else) {} else {}

缩进if第二 block 中的语句等同于缩进的 one_statement;在第一 block 中,就“句法‘语句’单元”而言。

然后,由于 C 允许灵活的间距,任何正数的空格、制表符和换行符的组合都是等价的。所以将上面的代码重新换行后,就变成了

if (condition) {
} else if (something else) {
} else {
}

我的理解正确吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com