[英]Method returns negative value
我正在嘗試創建一種方法來檢查輸入是否為大於零的雙精度數。 檢查它是否確實為double可以很好地使用我的代碼,但是,即使輸入負數,它也會提示您重新輸入該值,最后,在輸入正數后,它會返回先前輸入的負數
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 isValid(v);
之所以返回最后一個無效值,是因為從遞歸調用返回后,執行將繼續下去,直到方法底部的返回,即返回v
。 此時, v
是最后一個無效值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.