我对如何在同一if语句中使用||
和&&
感到困惑。
我要执行的操作是,如果字符串以"D"
或"O"
开头,并且打印为真,请检查该字符串是否具有两个字符长。< / p>
示例:如果字符串为"DE"
,它将打印一些内容。但是,如果它是"SE"
,则不会打印任何内容。
else if( (answer.startsWith("D") || answer.startsWith("O"))
&& (answer.length() == 2) ) {
//print something
}
答案 0 :(得分:0)
Java正在对您的逻辑施加“短路”。它执行第一部分(以“ D”或“ O”开头),如果是,则继续进行第二部分(长度为2)。但是,如果第一部分的计算结果为假,那么它甚至不会费心执行第二部分。
因此,您的“ SE”字符串将永远不会进入“打印内容”位,因为它不满足您以D或O开头的第一个条件。根据您对逻辑的描述,这是正确的
如果您实际上是说如果它以“ D”或“ O”开头,则 OR 的长度为2个字符,那么您的逻辑语句应该为:
else if( answer.startsWith("D") || answer.startsWith("O")
|| (answer.length() == 2 ) {
//print something
}
编辑:糟糕,第一次才粘贴原始代码!!
答案 1 :(得分:-1)
我会先检查长度,然后再检查两个条件,例如
else if (answer.lenght()==2) {
if (answer.startsWith("D") || answer.startsWith("O"){
//print something that lenght is 2 and starts with D or O
}
}
}
答案 2 :(得分:-2)
在这种情况下,您必须先检查长度,因为&&如果左侧和右侧均正确,则为true
else if( (answer.length() == 2)&&(answer.startsWith("D") || answer.startsWith("O"))
{
//your logic
}