所以我有这个循环。如果d1(用户输入)不是“g”或“u”,则应该运行循环。目的是强迫用户回答问题。但我不能让它发挥作用。
Scanner user_input = new Scanner(System.in);
d1 = user_input.next();
while (!"g".equals(d1) || !"u".equals(d1)) {
System.out.println("");
System.out.println("");
System.out.print("");
d1 = user_input.next();
}
我从过去知道这会起作用:
while (!"g".equals(d1)) {
System.out.println("");
System.out.println("");
System.out.print("");
d1 = user_input.next();
}
我认为它与这个“或逻辑运算符”||
有关答案 0 :(得分:3)
条件应该是:
while (!"g".equals(d1) && !"u".equals(d1)) {
而不是
while (!"g".equals(d1) || !"u".equals(d1)) {
答案 1 :(得分:1)
由于d1
不能同时等于"g"
和 "u"
,因此循环条件始终为真。你可能想要否定整个条件,而不是个别条件:
while (!("g".equals(d1) || "u".equals(d1)))
或类似地(也许更容易阅读):
while (!"g".equals(d1) && !"u".equals(d1))
答案 2 :(得分:0)
你说"如果用户输入不是g"或者"如果用户输入不是你,那么......并不是一个更好的运营商,你正在尝试做什么?如同在"如果用户输入既不是g也不是你":
使用&&而不是||如果是的话。