我想检查负数和非数

I want to check for both negative number and non-number

我有检查非数字的代码,但也希望包含对负数的检查。如果数字为负数或不是数字,则他们必须重新输入信息。我尝试在 try{ 之后和 catch 之前放置一个 if(depValue < 0)....,但这没有用。如果我将 if 语句放在 while 循环之后,这对我来说没有意义。

String depIn = "";
BufferedReader depositInput = new BufferedReader(new InputStreamReader(System.in));
while(true){
     System.out.print("Amount to deposit: ");                   
     depIn = depositInput.readLine();
     double depValue = 0.00;
     try{
          depValue = Double.parseDouble(depIn);
          break;
     }
     catch(NumberFormatException ne){
          System.out.println("You did not enter a number!");
     }
}

放在同一个try catch块中,只显示捕获到的NumberFormatException的错误信息

 try{
      depValue = Double.parseDouble(depIn);
      if (depValue < 0) throw new NumberFormatException("Negative value not acceptable!");
      break;
 }
 catch(NumberFormatException ne){
      ne.printStackTrace();
 }

当你有你需要的号码时,你可以跳出循环。

double depValue;
while(true){
     System.out.print("Amount to deposit: ");                   
     depIn = depositInput.readLine();
     try {
          if ((depValue = Double.parseDouble(depIn)) > 0)
              break;
          System.out.println("The number needs to be positive!");
     } catch(NumberFormatException ne) {
          System.out.println("You did not enter a number!");
     }
}