执行时循环的范围?
在 Java 中,循环的主体和循环条件不属于同一作用域。因此,以下代码将无法编译:do-while
do {
boolean b = false;
} while (b); // b cannot be resolved to a variable
但是这段代码对我来说确实有意义。
此外,如果身体和条件处于同一范围内,我找不到任何陷阱;由于主体将始终被执行,而Java没有,我不知道如何跳过最外层主体作用域中的变量声明。即使有可能,编译器也始终可以检测到这种可能性,然后产生编译时错误。Goto
do-while
这种行为有什么原因吗(除了保持循环的格式与)相同?我真的很好奇。感谢您的任何输入!do-while
while