当前位置: 首页 > 知识库问答 >
问题:

Java中的InputMismatchException替换while循环

葛昕
2023-03-14

在我的任务中,当用户试图输入一些值时,我需要放置InputMismatchException。用户获取从1到某个数字的一些数字(simptoms.lenght)。

int number=0;
            do{
                System.out.printf("Choose %d simptoms: \n", number+1);
                for(int j=0; j< simptomi.length;j++){
                    System.out.printf("%d. %s %s\n", j + 1, simptoms[j].getName(), 
simptoms[j].getValue());

            }
            System.out.print("Choose: ");

            while(!scanner.hasNextInt()){
                System.out.println("Please enter number!");
                scanner.next();
            }
            
            
            number=scanner.nextInt();
            scanner.nextLine();

            if(number<0 || number> simptoms.length){
                System.out.println("Error, choose again");

            }

        }while(number<0  || number> simptoms.length);

在这段代码之后,我尝试了这样做:我尝试了try(!scanner.hasnextInt()),而不是while(!scanner.hasnextInt),我得到了以下消息

  try{
     number=scanner.nextInt();
     scanner.nextLine();
     }

     catch (InputMismatchException ex){
     System.out.println("Please, enter number!");
            }

共有1个答案

松思源
2023-03-14

试试看!希望有帮助!

try {
    do {
        number = scanner.nextInt();

        if (!Character.isAlphabetic(number)) {
            if (number > simptoms.length) {
                System.out.println("Error, choose again");
                System.out.println("Please enter number!");
            }
        }
    } while (number != -1);
} catch (InputMismatchException e) {
    System.out.println("Enter number");
}
 类似资料:
  • 我需要对while或do循环进行编码,以确定用户输入的数字是否在特定范围内(30

  • 主要内容:while 语句,do-while 语句,while和do-while的比较循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。 所有流行的编程语言中都有循环语句。 Java 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for。另外 Java 5 之后推出了 for-each 循环语句,for-each 循环是 for 循环的变形,它是专门为集合遍历而设计的。for-ea

  • 我是并发新手,我试图为do-time循环实现执行器服务并发。但是我总是遇到 以下是我的示例代码: 但这似乎是不正确的。我想我在错误的地方调用了关闭。有人能帮我在do-time循环中正确实现

  • 问题内容: 我有这段代码,我想捕捉字母异常,但它一直存在这些错误: 这是我的代码: 问题答案: 您可以使用do-while循环来消除first 。 因此,所有这些都可以在一个地方处理。

  • 问题内容: 我正在制作一个以这种方式执行的while循环程序: 主线程进入while循环。 在while循环中什么也没有发生。 线程将停留在while循环中,直到满足条件为止。 另一个线程运行一个满足上述条件的函数。 这是一个例子: 类中还有另一个函数会将路径设置为null,一旦发生这种情况,主线程应退出此循环。在另一个线程中调用另一个函数。 但是,即使将path设置为null,主线程也不会退出循

  • 我想写一个程序,把每4位数字的每一位相加。例如,我从1000开始,加上1001,千变成2,百变成0,十变成0,单位变成1。这将持续增加每个数字,直到达到9999。这是我的代码,它只输出9999。