虽然这个程序有效,但我不确定这是将用户选择与三个值x,y,z进行比较的最佳方法。还有什么可能呢?
if (userchoice == 1) {
double x = p1.getStorageSize();
double y = p2.getStorageSize();
double z = p3.getStorageSize();
System.out.println("How much memory do you need?");
double memoryByUser = input.nextDouble();
if (memoryByUser > x) {
ArrayList numbers = new ArrayList <>();
numbers.add(p1.getModel());
if (memoryByUser > y) {
numbers.add(p2.getModel());
} else {
print = numbers;
}
if (memoryByUser > z) {
numbers.add(p3.getModel());
print = numbers;
} else {
print = numbers;
}
}
}
return String.valueOf(print);
}
}
答案 0 :(得分:0)
将变量与三个值进行比较可以通过不同方式完成。知道对三个值的关系做出任何假设是否安全(例如x> = y&gt; = z)将是有趣的。只有当变量的值大于x时,您的代码才会将变量与y和z进行比较;否则不会触及y和z。
除了考虑三个值的逻辑之外,您还可以稍微整理一下代码。这是一个精简版本,可以避免不必要的声明和变量赋值。
if (userchoice == 1) {
ArrayList numbers = new ArrayList<>();
System.out.println("How much memory do you need?");
double memoryByUser = input.nextDouble();
if (memoryByUser > p1.getStorageSize()) {
numbers.add(p1.getModel());
if (memoryByUser > p2.getStorageSize()) {
numbers.add(p2.getModel());
}
if (memoryByUser > p3.getStorageSize()) {
numbers.add(p3.getModel());
}
}
}
return String.valueOf(numbers);