簡體   English   中英

方法返回負值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM