Java 我如何改进这个超级简单的新手代码?
虽然这个程序有效,但我不确定它是否是将用户选择与三个值x、y、z进行比较的最佳方法。还有什么可能Java 我如何改进这个超级简单的新手代码?,java,Java,虽然这个程序有效,但我不确定它是否是将用户选择与三个值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 nee
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);
}
}
if(userchoice==1){
double x=p1.getStorageSize();
双y=p2.getStorageSize();
double z=p3.getStorageSize();
System.out.println(“您需要多少内存?”);
double memoryByUser=input.nextDouble();
如果(memoryByUser>x){
ArrayList编号=新的ArrayList();
add(p1.getModel());
如果(memoryByUser>y){
add(p2.getModel());
}否则{
打印=数字;
}
if(memoryByUser>z){
add(p3.getModel());
打印=数字;
}否则{
打印=数字;
}
}
}
返回字符串.valueOf(打印);
}
}
可以用不同的方法将一个变量与三个值进行比较。了解对三个值之间的关系(例如x>=y>=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);
if(userchoice==1){
ArrayList编号=新的ArrayList();
System.out.println(“您需要多少内存?”);
double memoryByUser=input.nextDouble();
如果(memoryByUser>p1.getStorageSize()){
add(p1.getModel());
如果(memoryByUser>p2.getStorageSize()){
add(p2.getModel());
}
如果(memoryByUser>p3.getStorageSize()){
add(p3.getModel());
}
}
}
返回字符串.valueOf(数字);
您能详细说明您的问题吗?是的,看起来很奇怪,但您可以明确地将代码print=number移出if-else块,并且只使用一次。事实上,将数字声明移出if块,直接使用String.valueOf(numbers)我投票将这个问题作为离题题题结束,因为它更适合@OlegEstekhin,而不是它的当前形式。这对于代码审查来说太小了。如果提供更多的上下文,并显示更多的代码,它就会工作。