所以,据我了解, do while 循环总是至少运行一次?但如果是这种情况,为什么我们需要在循环之外声明和初始化变量呢?
以下代码为例:
do {
int a = (int) (Math.random() * 13);
int b = (int) (Math.random() * 13);
int c = (int) (Math.random() * 13);
int d = (int) (Math.random() * 13);
}
while (a + b + c + d != 24);
这会抛出一个编译错误,指出 a、b、c、d 可能尚未初始化。由于我是一个 java 初学者,我确信这有一个简单的原因,但我似乎找不到它?!
非常感谢您对此提供的任何帮助。
最佳答案
查找变量范围,因为这是您的问题:您试图访问声明范围之外的变量,这里是 do-while 循环,但这是无法完成的。
请注意,如果您再引入一个变量,您的代码将会正常工作:
int sum = 0; // scope is *outside* of do-while loop
do {
int a = (int) (Math.random() * 13);
int b = (int) (Math.random() * 13);
int c = (int) (Math.random() * 13);
int d = (int) (Math.random() * 13);
sum = a + b + c + d;
} while (sum != 24);
但请注意,现在如果您仍然需要访问 a、b、c 和 d 值,则无法访问。为了实现这一点,您应该在循环之前声明变量。
关于java - Java 中的 Do-While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19881795/