在Java中,do-while
循环的主体和循环条件不属于同一作用域。因此,以下代码将无法编译:
do {
boolean b = false;
} while (b); // b cannot be resolved to a variable
但是这段代码对我来说是有意义的。
另外,如果循环体和条件在同一个作用域中,我找不到任何陷阱; 因为循环体总是会被执行,而Java没有Goto
语句,所以我不知道外层do-while
循环体作用域中的变量声明如何被跳过。 即使可能存在这种情况,编译器也可以检测到并生成编译时错误。
除了保持do-while
循环与while
循环具有相同的格式之外,还有其他原因吗?我真的很好奇。感谢任何意见!
{}
进行的。 - Bhesh Gurung{}
? - hugomg{}
来创建块,那么你可能做错了,应该进行重构。) - Dave Newton