Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇-为什么赢了';当我进入过滤器或排序以离开它时,我的while循环不会停止吗?_Java - Fatal编程技术网

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")) )