八个名字组成数组的Java程序

在其中声明一一个由八个

名字组成的数组。你自己的名字应该是数组中的名字。例如,我的名

字是Teemu,因此我的数组看起来像这样:

字符串[]名称{"Teemu"、"Bill" 、"Jaakko"、 "Mary"、 "Hikka" 、"Helen”、 "Ja

ck"、“Philippe' };

编写一个try块,首先提示用户输入一个数字,然后

1)在数组中显示相应的名称,即数字是数组中请求的位置。

2)显示数字列表的下一 个对应名称,即数组中的请求位置+1) 3)显示(1-100) 除以数字的某个整数的值

然后编写三个捕获块来捕获以下异常:ArrayIndexOutOfBoundsException

此catch块捕获用户输入超出范围的数字时引发的潜在ArraylndexOutOfBoundsException。catch块还应该显示一条错误消息。

算术异常

.此catch块捕获潜在的算术异常,例如,当用户输入一个数字时抛出,生成零除方案。catch块还应该通过使用方法显示错误消息。

数字形式异常

此catch块捕获潜在的NumberFormatException。e、当用户输4入字母而不是数字时抛出。catch块还应该显示一条错误消息。

将文件另存为BadUserNumber. JAVA

注意:使用“Scanner”类接受用户的输入值。。

程序代码大概就是这样:

import java.util.Scanner;

public class BadUserNumber {
    String[] names = {"Teemu", "Bill", "Jaakko", "Mary", "Hikka", "Helen", "Jack", "Philippe"};
    int randomIdx = -1;

    public void printInfo(int idx) {

        int nextIdx = idx + 1;

        System.out.print("current: ");
        catchPrint(idx);
        System.out.print("next:");
        catchPrint(nextIdx);
        System.out.print("random:");
        catchPrint(randomIdx);
    }

    public void catchPrint(int idx) {
        try {
            int randomIdx = (int) (Math.random() * 100) / idx;
            this.randomIdx = randomIdx;
            System.out.println(names[idx]);
        } catch (IndexOutOfBoundsException e) {
            System.out.println("输入的数字超过数组边界:" + e);
        } catch (NumberFormatException e) {
            System.out.println("输入的不是数字:" + e);
        } catch (ArithmeticException e) {
            System.out.println("除以零运算错误" + e);
        }
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        try {
            String number = in.next();
            BadUserNumber badUserNumber = new BadUserNumber();
            badUserNumber.printInfo(Integer.parseInt(number));
        } catch (NumberFormatException e) {
            System.out.println("输入的不是数字:" + e);
        }
    }
}

测试过了,应该没什么问题。



import java.util.Scanner;
public class BadUserNumber  {
    public static void main(String[] args){
        String[] nameArray={"Teemu","Bill","Jaakko", "Mary", "Hikka" ,"Helen ", "Jack", "Philippe "};
        try{
            Scanner in=new Scanner(System.in);
            System.out.println("请输入一个数字");
            String input = in.next();
            int number=Integer.valueOf(input);
            //在数组中显示相应的名称,即数字是数组中请求的位置。
            System.out.println(nameArray[number]);
            //显示数字列表的下一 个对应名称,即数组中的请求位置+1
            System.out.println(nameArray[number+1]);
            //显示(1-100) 除以数字的某个整数的值
            System.out.println(99/number);
        }catch (ArrayIndexOutOfBoundsException e){
            System.out.println("ArrayIndexOutOfBoundsException:您输入的数字超过数组范围了");
        }catch (NumberFormatException e){
            System.out.println("NumberFormatException:您输入的不是数字哦");
        }catch (ArithmeticException e){
            System.out.println("ArithmeticException:除数不能为0哦");
        }
    }
  
}

可以试一下,看看是这个意思吗


public static void main(String[] args) {
        // 创建数组
        String[] arr = {"Teemu","Bill" ,"Jaakko", "Mary", "Hikka" ,"Helen", "Jack", "Philippe" };

        Scanner scanner = new Scanner(System.in);
        int index = scanner.nextInt();

        try {
            for (int i = 0; i < arr.length; i++) {
                if (index == i) {
                    //  1)在数组中显示相应的名称,即数字是数组中请求的位置。
                    System.out.println(arr[i]);
                    //2)显示数字列表的下一 个对应名称,即数组中的请求位置+1)
                    System.out.println("下一个人名为:" + arr[i + 1]);
                }

                // 3)显示(1-100) 除以数字的某个整数的值
                int randomIdx = (int) (Math.random() * 100) / index;
                System.out.println(arr[randomIdx]);
            }
        } catch (IndexOutOfBoundsException e) {
            System.out.println("输入的数字超过数组边界:" + e);
        } catch (NumberFormatException e) {
            System.out.println("输入的不是数字:" + e);
        } catch (ArithmeticException e) {
            System.out.println("除以零运算错误" + e);
        }
        
    }

代码如下:

     public static void main(String[] args) {
        String[] usernames = {"Teemu","Bill" ,"Jaakko", "Mary", "Hikka" ,"Helen", "Jack", "Philippe" };
        try {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个数字");
            String posStr = scanner.next();
            int pos = Integer.parseInt(posStr);
            System.out.println("请输入的数字对应的名称是:" + usernames[pos]);
            System.out.println("请输入的数字对应的下一个名称是:" + usernames[pos+1]);
            // 生成一个[1,100]的随机数
            int randomInt = new Random().nextInt(100 + 1) + 1;
            int div = randomInt/pos;
            System.out.println("除以输入数字的随机数是:" + randomInt);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("你输入的数字超出范围");
        } catch (ArithmeticException e) {
            System.out.println("输入的数字0不能做为除数");
        } catch (NumberFormatException e) {
            System.out.println("你输入的数字不合法");
        }
    }

如有帮助,请采纳,十分感谢!