在Java编程语言中,以下两个循环是否等效于任何表达式 exp 和循环体 body ?唯一的条件应该是新引入的变量 b 不会出现在方法的其他地方(并且不隐藏属性,......)
while(exp) {
body
}
和
for(boolean b = exp; b; b = exp) {
body
}
答案 0 :(得分:5)
是的,根据这些假设。
for
构造在第一次迭代之前检查条件,因此如果b
是false
,那么将永远不会执行正文。换句话说,在代码示例中,exp
在每次循环迭代之前精确计算一次,结果用于决定是否执行该迭代。
但是你为什么要写这样的代码?
答案 1 :(得分:-1)
不,他们不是。使您的代码可读。
一个 计算
另一个是等待条件成立。