可能有一个明显的答案。可能已经有人问过这个问题,但我不知道该如何措辞。我正在使用Java,目前,我正在从命令行读取输入文本,并将这些内容转换为字符串。
我确定是在命令行中输入x字符,以及是否将代码设置为
!(first.equals("x")) or (first.equals("x"))
我仍然得到system.out输出文本。我注意到,如果删除||,下面的等号代码段按预期工作,并继续执行代码。但是,对于第一个arg字符串,我必须选择x或y作为选项。有人可以让我知道我在做什么错。谢谢。
这是代码段:
private something(String[] args)
{
first = args[0];
second = args[1];
third = args[2];
if (!(first.equals("x")) || !(first.equals("y")))
{
System.out.println("First is the problem " + first);
}
}
这里是输出:
First is the problem x
编辑:我也这样做并且得到了相同的结果:
if (first.equals("x") == false || first.equals("y") == false)
{
System.out.println("First is the problem " + first);
}
我正在使用此if语句作为是否输入两个值的检查。如果不是,则触发if语句。
当我有这样的时候它可以工作,但是我最终失去了y:
if (first.equals("x") == false)
{
System.out.println("First is the problem " + first);
}
first不是NOT“ x”或不是“ y”。无论设置了什么字符串[[first,始终都是如此。
=>您不是共和党人还是民主人士? ;)if
等于args[0]
或x
,则y
语句返回true。 !(first.equals("x"))
表示除"x"
以外的所有字符串都适用,因此这与您想要的相反。另外,您需要定义first
,second
和third
,否则它将无法编译。编辑:查看您的编辑,看来问题是由||
引起的。由于这意味着“或”,因此,如果要运行if语句,则first
不必等于x
或y
。因此,由于它不能一次等于两个,因此if语句将始终运行。您应该改用&&
(and)。另外,请注意,可以将== false
替换为!
。
例如:
if (!(first.equals("x")) && !(first.equals("y")))
{
System.out.println("First is the problem " + first);
}