相关疑难解决方法(0)

如何使用Scanner仅接受有效的int作为输入

我正在尝试使一个小程序更强大,我需要一些帮助.

Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;

System.out.print("Enter number 1: ");
num1 = kb.nextInt();

while(num2 < num1) {
    System.out.print("Enter number 2: ");
    num2 = kb.nextInt();
}
Run Code Online (Sandbox Code Playgroud)
  1. 2号必须大于1号

  2. 此外,我希望程序自动检查并忽略用户是否输入字符而不是数字.因为现在当用户输入例如r而不是数字时,程序就会退出.

java validation java.util.scanner

24
推荐指数
1
解决办法
22万
查看次数

如何抛出不会终止我的程序的 IllegalArgumentException?

好吧,我有一个带有 switch 语句的方法,但我省略了其余的情况,因为它们并不重要。在我的主要方法中,调用运算符方法并在 while 循环中传递参数“选择”,直到他们选择“Q”。

当用户输入负数时,它应该抛出异常,打印一条消息,并忽略他们的输入,然后循环回到开头。当抛出此异常时,它会终止程序。任何帮助将非常感激。谢谢!

public static void operator(String selection) throws IllegalArgumentException{
    Scanner input = new Scanner(System.in);
    double price;
switch(selection){
case "A":
     System.out.println("Enter the price");
        if(input.nextDouble()<0){
            throw new IllegalArgumentException("Price cannot be a negative value");
        }
        else{
            price = input.nextDouble(); 
        }
break;

case"Q":
  System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)

java exception try-catch throw

2
推荐指数
1
解决办法
9801
查看次数