这个问题更多地是为了理解我正在使用的部分代码。第1行中的“有效”布尔值成为第2行中while语句的条件。将布尔值置于while条件中时,这是否会自动更改布尔值?我不明白如果将valid初始化为false,它将如何在while循环之外变为true-除非在while条件下存在某种情况?我包含了一部分代码,以便您可以看到发生了什么。这是我试图理解的分数计算器的一部分。
感谢您的帮助!
boolean valid = false;
while (!valid) {
System.out.println("Please enter a Fraction a/b or integer (a): ");
firstFraction = scan.nextLine();
valid = validFraction(firstFraction);
if (valid) {
int findSlash = firstFraction.indexOf("/");
if (findSlash >= 0) {
firstFractionNumerator = Integer.parseInt(firstFraction.substring(0, findSlash));
firstFractionDenominator = Integer.parseInt(firstFraction.substring(findSlash + 1, firstFraction.length()));
}
else {
firstFractionNumerator = Integer.parseInt(firstFraction.substring(0, firstFraction.length()));
firstFractionDenominator = 1;
}
}
}
boolean shouldContinue = true;
while(shouldContinue) {
shouldContinue = new Random().nextInt(10) > 5;
}
if (valid) {}
中的内容与循环决策无关,它仅用于检查天气输入是a / b还是整数。然后循环退出,代码继续执行while循环后实现的内容。总而言之,循环很好。