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

如何在java中try catch语句中放置循环[重复]

卫振
2023-03-14

我的程序假设在用户输入整数时向随机数组添加10,随机数组将显示,并在第一个数组下向它们添加10,如果用户不输入int值,则try catch语句将捕捉显示错误消息的错误,因此我要做的是在try catch语句中添加一个循环,使用户在不输入int值时输入int值,这是我到目前为止尝试过的,但没有成功

public class tryandcatch {

    public static void main(String[] args) {

        int[] tab=new int[10];
        int i;
        Scanner inp=new Scanner(System.in);
        while(true) {
        try{
        System.out.println("Please enter an integer number");
        i=inp.nextInt(); 


        for(i=0;i<tab.length;i++){
            tab[i]=((int)(Math.random()*100));
            System.out.print(tab[i]+" ");
        }
        addTen(tab);
        System.out.print("\n");

        for(i=0;i<tab.length;i++)System.out.print(tab[i]+" ");
        break;
        }

        catch(InputMismatchException e){
            System.out.println("The number must be integer");

            i=inp.nextInt(); 


        }

        }

    }


    static void addTen(int[] x){
        int i;
        for(i=0;i<x.length;i++) x[i]+=10;
    }


    }

共有1个答案

籍弘伟
2023-03-14
  1. 使用integer.parseInt(Scanner::NextLine())代替Scanner::NextInt()。查看此选项以了解有关它的更多信息。
  2. 为了简单起见,可以使用布尔变量来跟踪是否需要环回。

按照以下步骤进行:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] tab = new int[10];
        int n;
        Scanner inp = new Scanner(System.in);
        boolean valid;
        do {
            valid = true;
            try {
                System.out.print("Please enter an integer number: ");
                n = Integer.parseInt(inp.nextLine());
                for (int i = 0; i < tab.length; i++) {
                    tab[i] = ((int) (Math.random() * 100));
                    System.out.print(tab[i] + " ");
                }
                addTen(tab);
                System.out.println();
                for (int i = 0; i < tab.length; i++) {
                    System.out.print(tab[i] + " ");
                }
            } catch (NumberFormatException e) {
                System.out.println("The number must be integer");
                valid = false;
            }
        } while (!valid);
    }

    static void addTen(int[] tab) {
        for (int i = 0; i < tab.length; i++) {
            tab[i] += 10;
        }
    }
}

示例运行:

Please enter an integer number: a
The number must be integer
Please enter an integer number: 10.5
The number must be integer
Please enter an integer number: 5
21 50 83 72 95 60 61 64 98 95 
31 60 93 82 105 70 71 74 108 105 
 类似资料:
  • 这是一个测试一个数字是否是质数的程序。任何人都知道为什么最后一个放在for循环之外;否则它表示缺少语句。谢谢!

  • 问题内容: 我有一个作业来实现一个简单的测试应用程序,下面是我当前的代码: 我现在想做的是,当按下时,这意味着用户想要退出测试,然后我中断了并打印,但是那样行不通,我知道原因可能是中断了,我怎样才能让它打破呢? 问题答案: 你可以while循环,并在,这应该是这样的: 而且可以是你想要的任何字,例如。

  • 循环结构能够让程序员以最少的精力去完成大量重复的工作,它可以让计算机根据条件做循环计算,当条件成立时继续循环,当条件不成立时结束循环。 依据前面所学的知识,如果我们想在屏幕上依次打印1到5,可以编写以下程序: 案例演示 预览 复制 复制成功! // PrintNums.java class PrintNums { public static void main(String[] args)

  • 问题内容: 因此,我正在为不和谐而开发一个聊天机器人,现在正在开发一个可以用作待办事项列表的功能。我有一个命令可以将任务添加到列表中,并将它们存储在字典中。但是,我的问题是以更易读的格式返回列表(参见图片)。 任务存储在一个称为中。但是,为了使bot实际发送消息,我需要使用一条语句,否则它将仅将其打印到控制台而不是实际的聊天记录(参见图片)。 这是我尝试解决的方法,但是由于我使用了for循环,因此

  • 我有一个主菜单类,它从用户那里获得一个选项,然后使用该选项从与菜单选项相关的switch语句中选择其他类。我的代码是: 例如“Exit”选项,所以我把switch语句放在一个while循环中,布尔条件不等于4,这样当选项设置为4时,循环就会停止。正确的情况下执行,但我的问题是,循环,因此程序停止后,我尝试每个情况,即使选择不是4。我尝试在案例1、2和3之后使用break语句,当我这样做时,它会在无

  • 我希望我的 print 语句在循环之外,这样语句就不会一遍又一遍地打印相同的内容。下面的 for 循环只是将一个数组中的数字与另一个数组进行对比,以找出找到多少个匹配项。定义上面的变量并打印下面的语句会导致“变量未初始化错误”,这是可以理解的。