返回Java中三个整数中最大的一个

返回Java中三个整数中最大的一个,java,Java,我正在CodingBat.com上在线做这些练习测验。这就是问题向我提出的问题: 给定三个int值a、b、c返回最大值 所以我设置了这个代码并检查结果 public int intMax(int a, int b, int c) { if(a>b || a>c){ return a; } if(b > a|| b>c){ return b; } else{ return c; } } 结果表明,我的代码并不适用于所有情况(尽管适用于大

我正在CodingBat.com上在线做这些练习测验。这就是问题向我提出的问题:

给定三个int值
a、b、c
返回最大值

所以我设置了这个代码并检查结果

public int intMax(int a, int b, int c) {
  if(a>b || a>c){
  return a;
  }
  if(b > a|| b>c){
  return b;
  }
  else{
  return c;
  }
}
结果表明,我的代码并不适用于所有情况(尽管适用于大多数情况),而且老师的代码也不同

为什么这个代码不起作用?

如果(a>b | a>c)
被认为是真的,如果a>b或a>c。由于您只想返回所有值中最高的值,因此需要
&&
这意味着,而不是
|
这意味着或。

您所做的:

 if(a>b || a>c){
  return a;
  }
如果
a>b
而不是
>c
??你错了


如果(a>b&&a>c)(
&&
,而不是
|
)到处都应该使用

使用
&
操作符来实现这一点

因为你的条件在错误的条件下变为真

例如:

输入:
[5,9,2]

if(a>b || a>c){
  return a;
这将给出输出
5
,而不是
9

因此,请使用
&&
运算符

if(a>b && a>c){
    return a;
}
if(b > a && b>c){
    return b;
}
else{
    return c;
}

使用
&&
运算符,而不是您正在使用的
|

|
,这在逻辑上是不正确的。你应该在这里使用AND
&&
。考虑A=2,B=3,C=1……哇哦…完全有道理。嘿,对不起,现在这个问题看起来很傻。我要检查那些操作员!谢谢我不明白你说:这不能提供答案。
if(a>b && a>c){
    return a;
}
if(b > a && b>c){
    return b;
}
else{
    return c;
}