Java:什么是对等的!=当比较字符串时?
我希望在忽略大小写时,只要用户输入“stop”或“continue”以外的值,就执行while循环。我该怎么做?每当我运行程序时,即使我输入continue或stop,它也会打印“无效条目”。我做错了什么Java:什么是对等的!=当比较字符串时?,java,string,boolean,Java,String,Boolean,我希望在忽略大小写时,只要用户输入“stop”或“continue”以外的值,就执行while循环。我该怎么做?每当我运行程序时,即使我输入continue或stop,它也会打印“无效条目”。我做错了什么 package butt; import java.util.*; // used for console input public class butt_face{ static Scanner console = new Scanner(System.in);
package butt;
import java.util.*; // used for console input
public class butt_face{
static Scanner console = new Scanner(System.in); // needed for user input
public static void main(String[] args) {
String strContinue; // input from console and used for boolean
System.out.println("Would you like to stop or continue? ");
strContinue = console.next();
while(!(strContinue.equalsIgnoreCase("stop")) || !(strContinue.equalsIgnoreCase("continue")))
{
System.out.println("Invalid entry");
System.out.println("Would you like to stop or continue? ");
strContinue = console.next();
} // end while
if(strContinue.equalsIgnoreCase("stop")
{
System.out.println("Good bye!");
} // end if
else
System.out.println("Poop Ship Destroyer");
} // end of main
} // end of class
执行类似于输入函数的操作,在输入这两个字符串中的一个之前调用输入扫描仪。您使用了错误的运算符:
!(strContinue.equalsIgnoreCase("stop"))
是真的
,除非strContinue
是“停止”
是真的
,除非strContinue
是“continue”
strContinue
不能同时是的“停止”
和的“继续”
,因此至少有一个条件将始终是真
,而假|真
是真
解决方案:将or(
|
)更改为and(&&
)。问题在您的逻辑中
while(!(strContinue.equalsIgnoreCase("stop")) || ! (strContinue.equalsIgnoreCase("continue")))
本部分检查strContinue是否等于stop如果等于stop,则检查strContinue是否等于continue 您需要在条件中替换为&&而不是||
检查回复你能更具体一点吗?更具体一点吗?他为你写了密码。看看它并思考。
如果(!someString.equals(otherString))
@duffymo!str.equals()不忽略大小写你应该查阅一些形式逻辑教程来帮助你处理控制语句。为什么你要调用函数来简单地比较两个字符串呢?我真的不明白他的意思,因为他使用了一个特殊的equals变体,并一直在问一般的equals!所以我只是想建议他把代码外包到一个输入法中,这个输入法可以一直运行到想要的结果,这样他就可以在任何地方重复使用它。他的(即OP的)“观点”是毫无根据的,真的。但是>>真正的point@Boognish如果你觉得这个答案有用,请随意投票并接受它!
while(!(strContinue.equalsIgnoreCase("stop")) || ! (strContinue.equalsIgnoreCase("continue")))