目前我有一个类似于下面的块:
if (number< 11 && number>= 5) {
return 1;
} else if (number< 15 && number>= 11) {
return 2;
} else if (number< 45 && number>= 15) {
return 3;
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
mat*_*sev 10
如何计算结果?
return number / 5;
Run Code Online (Sandbox Code Playgroud)
编辑:
正如评论中所指出的,这仅在number> = 0时有效.如果不是这样,只需添加适当的if语句.
你可以尝试做一些事情
return (int)number/5
Run Code Online (Sandbox Code Playgroud)
这将完全符合你的代码所做的
只要您的范围遵循任何数学模式,您就可以做类似的事情
我会使用两个数组,1用于保存数字以进行比较,其他用于保存答案.显示这种方法的一个非常简单的例子:
public int getResult(int number) {
int[] results = { 1, 2, 3 };
int[] numbers = { 5, 11, 15, 45 };
for(int i = 0; i < numbers.length - 1; i++) {
if (between(number, numbers[i], numbers[i+1])) {
return results[i];
}
}
//return a default value
//return results[results.length - 1];
return 0;
}
public boolean between(int x, int a, int b) {
return (x >= a && x < b);
}
Run Code Online (Sandbox Code Playgroud)