我有三个整数,在作为命令行参数传入后分配给变量.我想验证每个整数是否在1-5范围内.有没有办法在Java中完成此操作而不使用如下所示的if语句?我想避免这样做(note-pseudocode):
if ((a & b & c) > 0 && (a & b & c) < 6) {
//blah blah
}
Run Code Online (Sandbox Code Playgroud)
主要是,如果将来添加额外的参数等,这将无法很好地扩展.是否有更优雅的方法来实现这一目标?
Doo*_*nob 10
我认为可以做出的唯一改进(可读性)是这样的:
public boolean isInRange(int i) {
return i > 0 && i < 6;
}
Run Code Online (Sandbox Code Playgroud)
然后调用该函数.
如果a,b和,并且c相关,您也可以考虑使用数组并循环.就像是:
public boolean allInRange(int[] arr) {
for (int i = 0; i < arr.length; i ++) {
if (!isInRange(arr[i])) return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情怎么样:
validate(int ... args) {
for (int arg : args) {
if (arg < 1 || arg > 5) {
throw IllegalArgumentException("Argument is not in valid range [1..5]: " + arg);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后调用这个帮助方法
validate(a,b,c);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |