do {
System.out.println("Please enter the cost: ");
Cost1 = input.nextDouble();
} while (Cost1 <= 100000 || Cost1 >= 900000);
这是我的代码。如果我输入100001它会跳过循环,但如果我输入100000则不会。这是为什么?
答案 0 :(得分:1)
错误的条件(根据您的期望)
Cost1 <= 100000 || Cost1 >= 900000
平均值
While Cost1 <= 100k OR Cost1 >=900K
所以,当你将100001
放在100k
之上且不等于900K
答案 1 :(得分:0)
如果你输入100 001时Cost1
不低于10万,并且不高于900 000,那么你就会离开while语句。
尽管如此,如果您输入100 000,则您的第一个条件已完成,因此该语句将再次执行(延迟评估)。
答案 2 :(得分:0)
它的工作方式就像你要求的那样(或者至少是写作)。
如果Cost1
超过100000且小于900000 ,则会跳过循环,正如您所指出的那样。
因此对于100000它不会跳过(因为它等于100000)而对于100001它不会(因为它在100000和900000之间)
答案 3 :(得分:0)
根据条件它显然会退出循环,因为100001> 100000 我认为你想要别的东西,而且你错误地提出了错误的条件。在这里提出你的问题
答案 4 :(得分:0)
只有当值不在100000和900000之间时,才会执行循环。给定或建立逻辑。
这个逻辑看起来不在正常情况下(虽然它可能是),我假设你只想在这些值之间进行迭代,这可以通过使用和逻辑来解决。
do {
System.out.println("Please enter the cost: ");
Cost1 = input.nextDouble();
} while (Cost1 >= 100000 && Cost1 <= 900000);