如何解决为什么在while循环中但不能在其中插入分号
我为什么要这样做:
if (int result=getValue(); result > 100) {
}
但不能这样做:
while (int result=getValue(); result > 100) {
}
为什么歧视while
?条件就是条件。为什么while
无法像if
那样评估它?
为了通过while
实现所需的行为,我必须以这种方式实现它:
int result = getValue();
while (result > 100) {
//do something
result = getValue();
}
解决方法
因为我们已经有一个while循环初始化器。拼写为:
for (int result=getValue(); result > 100;) {
}
,
我可以想到不添加此语法的三个原因。
-
有一个非常合适的构造,即
for
循环,可以完全用于此目的。 -
在语言中添加任何功能都是一项艰巨的工作,因此对于此类提议,需要提出非常有力的理由。考虑到第一点,我看不到这种情况。
-
在我看来,这是最重要的一个功能:如果将此功能添加到了语言中(比如说是为了方便使用语法或类似的东西),那么从根本上讲,从语言中就不可能删除它。这意味着
while (;)
语法将永远被禁止,并且很可能还有其他一些我们希望使用这种语法表达的语义,并且放弃此选项不是没有仔细考虑就应该做的事情。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。