返回Java中最大的三个整数

时间:2013-04-29 05:41:42

标签: java

我正在从CodingBat.com在线进行这些练习测验。这就是问我的问题:

  

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

intMax(1, 2, 3) → 3
intMax(1, 3, 2) → 3
intMax(3, 2, 1) → 3

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

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

结果显示我的代码并不适用于所有情况(虽然对大多数情况都有效),而且教师的代码也不同。

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

4 个答案:

答案 0 :(得分:2)

你做了什么:

 if(a>b || a>c){
  return a;
  }

如果a>b但不是>c怎么办?你错了。

您应该到处使用if(a>b && a>c)&&而不是||)。

答案 1 :(得分:0)

如果>

if(a>b || a>c)被认为是真的。 b OR a> C。由于您只想返回所有值中最高的值,因此您需要&&,这意味着AND代替||,这意味着OR。

答案 2 :(得分:0)

使用&&运算符来实现此目的。

因为你的情况在虚假状态下变为真实。

例如:

输入:[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;
}

答案 3 :(得分:0)

使用&&运算符代替||