Java 如何使用';或';在爪哇?

Java 如何使用';或';在爪哇?,java,boolean-operations,Java,Boolean Operations,我对Java非常陌生,不知道如何使用“或”。Java的等价物是什么? 我已经尝试了&&和| |,但eclipse无法识别它 这是我代码的一部分: if (action.equals ("run") || ("sprint")) { System.out.println("you ran"); } else { System.out.println("else"); } 我已经试过了&&和| |,但eclipse没有识别出它 这很奇怪,但只是为了涵盖基本内容:假设您有变量a,它包

我对Java非常陌生,不知道如何使用“或”。Java的等价物是什么? 我已经尝试了
&&
| |
,但eclipse无法识别它

这是我代码的一部分:

if (action.equals ("run") || ("sprint")) {
    System.out.println("you ran");
}
else {
    System.out.println("else");
}
我已经试过了&&和| |,但eclipse没有识别出它

这很奇怪,但只是为了涵盖基本内容:假设您有变量
a
,它包含值
5
。然后:

if (a == 5 || a == 7)
…将为true,因为表达式的第一部分(
a==5
)为true。因此,语句“
a
等于5
a
等于7”是正确的

|
运算符只能在Java中使用,其中需要布尔(true或false)表达式,例如在类似上述的
if
语句中。在一个
if
或一个条件运算符(即
?…:
的东西,有时称为三元运算符)中,情况差不多


重新编辑时,问题是
| |
运算符的两边都不是true或false(“布尔”)表达式。你的声明:

if (action.equals ("run") || ("sprint")){
分解如下:

if (
   action.equals ("run")
|| // ("or")
   ("sprint")
)
第二部分不是真/假,而是字符串。用Java(或几乎任何其他编程语言)表示的正确方法是:

现在,
| |
的两侧都会产生真/假表达式:

if (
   action.equals ("run")
|| // ("or")
   action.equals ("sprint")
)
原因是第二部分可能与
操作
没有任何关系,因此编译器不能假设您打算在表达式的第二部分中重复使用它。例如,您可能希望将
| |
用于两个完全不相关的内容:

if (action.equals("run") || somethingElse.equals("run")) {
嗯<代码>(“sprint”)不是布尔表达式。由于
if
条件需要一个布尔表达式,因此代码返回一个错误。您应使用以下命令更改行:

if (action.equals ("run") || action.equals("sprint")){

equals
方法返回一个布尔值,| |运算符希望每边有两个布尔值

你在做一个
动作。一边是等于(“run”)
,另一边是
(“sprint”)
,这不是布尔表达式

按如下方式更改代码:


if(action.equals(“run”)| | action.equals(“sprint”){

按位OR或条件OR&&表示
。您正在搜索
|
可能发布一些代码?它会根据上下文而变化。eclipse无法识别它,那么您正在使用它,因为您不应该使用它。
(土耳其和填充)|(土豆和肉汁)
当他们说eclipse无法识别该表达式时,很可能是因为它被用在了不正确的位置
if (action.equals ("run") || action.equals("sprint")){