谁能解释这段代码中的布尔值如何工作?

问题描述 投票:1回答:2

这个问题更多地是为了理解我正在使用的部分代码。第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;
        }
    }
}
java while-loop boolean conditional-statements
2个回答
0
投票
考虑这个简单的例子。如果我们在6-10之间随机选择一个数字,我们将继续循环,如果选择一个0-5,则退出。

boolean shouldContinue = true; while(shouldContinue) { shouldContinue = new Random().nextInt(10) > 5; }


0
投票
然后,它接受有效输入并对其进行处理,if (valid) {}中的内容与循环决策无关,它仅用于检查天气输入是a / b还是整数。然后循环退出,代码继续执行while循环后实现的内容。

总而言之,循环很好。

© www.soinside.com 2019 - 2024. All rights reserved.