在Java编程语言中,以下两个循环是否等效于任何表达式exp和循环体体?唯一的条件应该是新引入的变量b不会出现在方法的其他地方(并且不隐藏属性,......)
while(exp) {
body
}
Run Code Online (Sandbox Code Playgroud)
和
for(boolean b = exp; b; b = exp) {
body
}
Run Code Online (Sandbox Code Playgroud)
是的,根据这些假设.
所述for构建体检查第一次迭代之前的状态,因此,如果b是false的话,身体将永远不会被执行.换句话说,在您的代码示例中,exp在每次循环迭代之前精确计算一次,并且结果用于决定是否执行该迭代.
但是你为什么要写这样的代码呢?