gpt4 book ai didi

java - 如何在循环中创建 try block ?

转载 作者:行者123 更新时间:2023-12-01 21:59:49 27 4
gpt4 key购买 nike

我刚刚了解了Java中的'try'语句,我想做的是让这个输入循环,直到用户的输入既是整数和正数。

这是我到目前为止的代码:

int scanning () {

Scanner scan = new Scanner(System.in);
int input = 0;
boolean loop = false;
do {
try {
System.out.print("Amount: ");
input = scan.nextInt();
if (input < 0) {
System.out.println("Error. Invalid amount entered.");
loop = true;
}
} catch (Exception e) {
System.out.println("Error: Invalid input");
loop = true;
}
} while (loop);

return input;
}

但是,当用户输入无效整数时,它会经历无限循环,一遍又一遍地打印错误消息。预期结果是不断要求用户提供有效的输入。

最佳答案

此代码将帮助您进入无限循环,并在输入为 -ve 整数时引发异常。

java中的异常处理是处理运行时错误的强大机制之一,以便维持应用程序的正常流程。

大多数时候,当我们用java开发应用程序时,我们经常觉得需要创建并抛出自己的异常。因此,首先创建一个用户定义的异常AmountException。

      public class AmountException extends Exception {
private static final long serialVersionUID = 1L;

public AmountException() {
// TODO Auto-generated constructor stub
System.out.println("Error. Invalid amount entered");
}
}

现在将你的scanning()编辑为:

    int scanning () {
Scanner scan = new Scanner(System.in);
int input = 0;
boolean loop = false;
do {
try {
System.out.print("Amount: ");
input = scan.nextInt();
if (input < 0) {

loop = true;
throw new AmountException();

} else {
loop = false;
}

} catch (AmountException e) {

}
} while (loop);

return input;
}

关于java - 如何在循环中创建 try block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758534/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com