Java:如果语句中有两个或多个条件,if语句不起作用吗?
可能有一个显而易见的答案。这个问题可能已经被问过了,但我不知道如何用词来表达这个问题。我正在用Java工作,现在,我正在从命令行读取输入文本,并将这些内容转换为字符串 我肯定会在命令行中输入x字符,以及是否将代码设置为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选项。有人能告诉我
!(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
。你期望的行为是什么?