java< =无法正常工作

时间:2013-04-09 08:40:55

标签: java

    do {
        System.out.println("Please enter the cost: ");
        Cost1 = input.nextDouble();
    } while (Cost1 <= 100000 || Cost1 >= 900000);

这是我的代码。如果我输入100001它会跳过循环,但如果我输入100000则不会。这是为什么?

5 个答案:

答案 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);