我做了简单的程序。我想在用户输入“5”时停止它。
相关代码:
do {
System.out.println("Enter 5 to quit");
a = scanner.nextInt();
b = a==5;
} while (b = true);
当然早些时候我命名变量(int a,boolean b等)
键入时为什么不起作用:
}while (b ==5)
PS。有没有办法重构代码(,更改为 )?
答案 0 :(得分:3)
做的时候
}while (b = true);
您要将true
的值分配给b
,以便它始终为真
你想要的是
}while (b != true);
或
}while (!b);
答案 1 :(得分:1)
如果输入5应该让你退出循环,你的条件应该是:
do {
...
} while (!b); // or while (b == false)
只有输入5后, while (b == true)
和while (a == 5)
才会让您进入循环。
答案 2 :(得分:0)
do {
System.out.println("Enter 5 to quit");
} while (scanner.nextInt() != 5);
答案 3 :(得分:0)
while (b = true);
你使用= here(赋值)代替==(关系)
然后你用过这个:
b = a==5;
现在按照运算符优先级,首先执行== 5,这可能会返回true或false。这不会起作用:
while (b ==5)
因为它与Java中的while (b ==true)
不同,在C / C ++中, true是任何非零值,false是零。在Java中,true和false是非数字值 不涉及零或非零。所以,你可以尝试:
while (b == true);
或
while (a!=5);
答案 4 :(得分:0)
虽然您需要仔细阅读java的基础知识,但让我回答您的问题
} while (b == 5);
没有工作。这是因为你试图比较一个布尔值(你说你已声明b为布尔值)和5(这是一个整数)。