Java 爪哇-为什么赢了';当我进入过滤器或排序以离开它时,我的while循环不会停止吗?
您正在使用Java 爪哇-为什么赢了';当我进入过滤器或排序以离开它时,我的while循环不会停止吗?,java,Java,您正在使用|进行检查,您的一条语句将始终为真。尝试&&您的情况可以改写为: while((!(command.toLowerCase().contains("filter")==true) || !(command.toLowerCase().contains("sort")==true))){ System.out.println("Input is invalid. Please try again."); command = range.nextLine()
|
进行检查,您的一条语句将始终为真。尝试&&
您的情况可以改写为:
while((!(command.toLowerCase().contains("filter")==true) ||
!(command.toLowerCase().contains("sort")==true))){
System.out.println("Input is invalid. Please try again.");
command = range.nextLine();
}
所以,这意味着,在人类语言中,当命令不包含filer或命令不包含sort时,继续循环。因此,如果只键入其中一个条件,则第二个条件为true,整个语句为true。对于您拥有的内容,如果您编写了包含这两个元素的字符串,那么它将结束,例如:“filter is sorted”
如果只想以该单词中的一个结尾,则必须使用AND,即&,结果是:
(((command.toLowerCase().contains("filter")==false) ||
(command.toLowerCase().contains("sort")==false)))
如果您的命令必须包含“筛选”或“排序”。那么下面的布尔表达式满足这个条件
(((command.toLowerCase().contains("filter")==false) &&
(command.toLowerCase().contains("sort")==false)))
现在,如果我理解正确,您希望在不满足上述条件的情况下继续查找命令
command.toLowerCase().contains("filter") || command.toLowerCase().contains("sort")
上面的while条件是“while NOT(filter或sort)keep looping”用词大声说出你的
while
条件。让我们更简单一些。什么值x
没有通过此测试(x!=1或x!=2)
?我尝试过,当我这样做时,它返回true,那么它不应该离开while循环吗?如果while
条件返回true
,它会停止吗?这些是你应该问自己的问题。我刚刚尝试过这个。当我进入过滤器时,它会中断while循环,但当我进入sort时,它甚至不会进入while循环statement@KevinNguyen-当然,如果编写过滤器或排序,它不会进入while循环。你到底想要实现什么?
while( !(command.toLowerCase().contains("filter") || command.toLowerCase().contains("sort")) )