返回Java中三个整数中最大的一个
我正在CodingBat.com上在线做这些练习测验。这就是问题向我提出的问题: 给定三个int值返回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; } } 结果表明,我的代码并不适用于所有情况(尽管适用于大
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;
}