Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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:如果语句中有两个或多个条件,if语句不起作用吗?_Java_String_If Statement_Operators_Equals - Fatal编程技术网

Java:如果语句中有两个或多个条件,if语句不起作用吗?

Java:如果语句中有两个或多个条件,if语句不起作用吗?,java,string,if-statement,operators,equals,Java,String,If Statement,Operators,Equals,可能有一个显而易见的答案。这个问题可能已经被问过了,但我不知道如何用词来表达这个问题。我正在用Java工作,现在,我正在从命令行读取输入文本,并将这些内容转换为字符串 我肯定会在命令行中输入x字符,以及是否将代码设置为 !(first.equals("x")) or (first.equals("x")) 我仍然获得system.out输出文本。我注意到,如果我删除| |和下面的equals代码段,它将按预期工作并继续执行代码。但是,对于第一个arg字符串,必须有x或y be选项。有人能告诉我

可能有一个显而易见的答案。这个问题可能已经被问过了,但我不知道如何用词来表达这个问题。我正在用Java工作,现在,我正在从命令行读取输入文本,并将这些内容转换为字符串

我肯定会在命令行中输入x字符,以及是否将代码设置为

!(first.equals("x")) or (first.equals("x"))
我仍然获得system.out输出文本。我注意到,如果我删除| |和下面的equals代码段,它将按预期工作并继续执行代码。但是,对于第一个arg字符串,必须有x或y be选项。有人能告诉我我做错了什么吗。谢谢

以下是代码片段:

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);
    }

此代码似乎有效。如果
args[0]
等于
x
y
,则
if
语句返回true<代码>!(first.equals(“x”)意味着除了
“x”
,它对每个字符串都是真的,因此这与您想要的正好相反。另外,您需要定义
第一个
第二个
,以及
第三个
,否则它将无法编译

编辑: 查看您的编辑,问题似乎是由
|
引起的。因为这意味着“或”,所以要运行if语句,
first
只需不等于
x
y
。因此,由于它不能同时等于两者,if语句将始终运行。您应该改用
&&
(and)。另外,请注意,
==false
可以替换为

例如:

if (!(first.equals("x")) && !(first.equals("y")))
{
    System.out.println("First is the problem " + first);
}

第一个不是“x”或不是“y”。无论设置的字符串是还是,这都是正确的


=>你不是共和党人还是民主党人

您的
if
语句将打印
x
,因为变量
的值总是
x
。你期望的行为是什么?