java<;=工作不正常 do{ System.out.println(“请输入成本:”); Cost1=input.nextDouble(); }而(成本1=900000);

java<;=工作不正常 do{ System.out.println(“请输入成本:”); Cost1=input.nextDouble(); }而(成本1=900000);,java,Java,这是我的密码。如果我输入100001,它跳过循环,但如果我输入100000,它不会。这是为什么?错误的情况(根据您对它的期望) Cost1=900000 意味着 而成本1=900K 因此,当您输入100001时,如果您在Cost1不低于100000且不高于900000时输入100001,则它既不小于100k也不大于900K,因此您退出while语句 尽管如此,如果输入100000,while的第一个条件就完成了,因此该语句将在下一次重新执行(延迟计算)。它会按照您的要求工作(或至少是写入)

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

错误的情况(根据您对它的期望)

Cost1=900000
意味着

而成本1=900K

因此,当您输入
100001
时,如果您在
Cost1
不低于100000且不高于900000时输入100001,则它既不小于
100k
也不大于
900K

,因此您退出while语句


尽管如此,如果输入100000,while的第一个条件就完成了,因此该语句将在下一次重新执行(延迟计算)。

它会按照您的要求工作(或至少是写入)

正如您所指出的,如果
Cost1
大于100000且小于900000,则将跳过该循环


因此,对于100000,它不会跳过(因为它等于100000),对于100001,它会跳过(因为它在100000和900000之间)

根据条件,它显然会跳出循环,因为100001>100000
我认为您还需要其他东西,但您错误地设置了错误的条件。请在此处发布您的查询

您的循环仅在值不在100000到900000之间时执行,前提是建立了or逻辑

此逻辑似乎超出了正常情况(虽然它可能是有意的,),但我假设您只希望在这些值之间迭代,这可以通过使用and逻辑来解决

While Cost1 <= 100k OR Cost1 >=900K
do{
System.out.println(“请输入成本:”);
Cost1=input.nextDouble();

}当(Cost1>=100000&&Cost1因为100000是因为您的想法错误。当值介于100000和900000之间时,它退出循环。当值小于100001或大于899999时,它将留在循环中。
Do loop while:Cost1小于或等于100000或Cost1大于或等于900000y!现在修好了,谢谢。
Cost1 <= 100000 || Cost1 >= 900000
While Cost1 <= 100k OR Cost1 >=900K
do {
    System.out.println("Please enter the cost: ");
    Cost1 = input.nextDouble();
} while (Cost1 >= 100000 && Cost1 <= 900000);