c – 是否存在else if语句?
前一段时间之后,不再站立如此:
if (arg) invk(test); else if (test) { alot(); stuff(); } 我决定让自己更好地在1920×1200次的可读性,不要忽略{}. 所以我写了一个重新格式化现有代码的工具. 后来我注意到该工具导致的错误 if (x) { ... } else if(y) { ... } else if(z) { ... } 已经改变(wihtout意见改变行为)成: if (x) { ... } else { if(y) { ... } else { if(z) { ... } } } 这使我意识到(意想不到的),这实际上是一个如果通过语法和语义规则C 那么甚至还有一个if()存在的语句呢,还是只是一种滥用语义,导致这个有用的(但是为了这个目的,我们可以这么称呼它)混淆起源的措辞,打破任何形成的规则,只是作为人类可读的? 解决方法
根据C11章节§6.8.4,选择语句,可用的语句块是
if ( expression ) statement if ( expression ) statement else statement switch ( expression ) statement 关于其他部分,
所以,没有别的,如果构造,按照标准C存在 显然,if(或if … else)块可以作为else块中的语句存在(嵌套if else else,我们可以这么说). 缩进的选择留给用户. 注意: 只是为了添加,没有一个单独的else if构造存在的理由,可以通过嵌套实现功能.见this wiki article.相关报价
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |