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()存在的语句呢,还是只是一种滥用语义,导致这个有用的(但是为了这个目的,我们可以这么称呼它)混淆起源的措辞,打破任何形成的规则,只是作为人类可读的?
解决方法
if ( expression ) statement if ( expression ) statement else statement switch ( expression ) statement
关于其他部分,
An
else
is associated with the lexically nearest precedingif
that is allowed by the
Syntax.
所以,没有别的,如果构造,按照标准C存在
显然,if(或if … else)块可以作为else块中的语句存在(嵌套if else else,我们可以这么说).
缩进的选择留给用户.
注意:
只是为了添加,没有一个单独的else if构造存在的理由,可以通过嵌套实现功能.见this wiki article.相关报价
The often-encountered
else if
in theC
family of languages,and in COBOL and Haskell,is not a language feature but a set of nested and independent “if then else” statements combined with a particular source code layout. However,this also means that a distinctelse-if
construct is not really needed in these languages.
原文地址:https://www.jb51.cc/c/111612.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。