方法returns负值
Method returns negative value
我正在尝试创建一种方法来检查输入是否为大于零的双精度值。检查它是否确实是 double 在我的代码中工作正常,但是,即使在输入负数时提示重新输入值,最后,在输入正值后它 returns 较早输入的负数
public static double isValid(double v){
Scanner scan = new Scanner(System.in);
if (scan.hasNextDouble()){
v = scan.nextDouble();
if (v<=0) {
System.out.println("You have to use a positive number");
isValid(v);
}
else {
return v;
}
}
else {
System.out.println("Thats not how it works");
isValid(v);
}
return v;
}
您需要return递归调用的结果:
return isValid(v);
它是 returning 最后一个无效值,因为在从递归调用 returning 之后,执行继续向下到方法底部的 return,returning v
。此时,v
就是最后一个无效值。
我正在尝试创建一种方法来检查输入是否为大于零的双精度值。检查它是否确实是 double 在我的代码中工作正常,但是,即使在输入负数时提示重新输入值,最后,在输入正值后它 returns 较早输入的负数
public static double isValid(double v){
Scanner scan = new Scanner(System.in);
if (scan.hasNextDouble()){
v = scan.nextDouble();
if (v<=0) {
System.out.println("You have to use a positive number");
isValid(v);
}
else {
return v;
}
}
else {
System.out.println("Thats not how it works");
isValid(v);
}
return v;
}
您需要return递归调用的结果:
return isValid(v);
它是 returning 最后一个无效值,因为在从递归调用 returning 之后,执行继续向下到方法底部的 return,returning v
。此时,v
就是最后一个无效值。