我无法理解为什么我的代码无法解决我正在尝试解决的这个问题。
问题: 给定 2 个正 int 值,返回 10..20(含)范围内的较大值,如果都不在该范围内,则返回 0。
我的代码:
public int max1020(int a, int b) {
int max;
if((a<10 || a>20) && (b<10 || b>20)) {
max = 0;
}
if(Math.max(a,b) >= 10 && Math.max(a,b) <= 20) {
max = Math.max(a,b);
} else {
max = Math.min(a,b);
}
return max;
}
每个数字都有效,除了 a = 9 和 b = 21 时,我只是不明白。我哪里出错了?
最佳答案
你不会返回 0 .. 永远 .. 所以 .. 9 小于 10 .. 并且 b 大于 20 所以返回 0 。我认为你得到 9 是因为当两个数字都在界限内时你仍在执行该部分。
公共(public) int max1020(int a, int b) { 整数最大值;
if((a<10 || a>20) && (b<10 || b>20)) {
**>> return 0;**
}
if(Math.max(a,b) >= 10 && Math.max(a,b) <= 20) {
max = Math.max(a,b);
} else {
max = Math.min(a,b);
}
return max;
}
关于java - 比较整数变量以获取范围内的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456814/