首页 > 解决方案 > 如何将 int numStudents 复制到 Integer i?

问题描述

我正在尝试将 numStudents int 复制到 i Integer 但它们始终保持不变。int 不是一个对象,所以我试图让 i 成为 Integer 无济于事。如何避免此参考副本?

import java.util.Scanner;
public class passionProject2 {
    public static void main(String[] args) {

        Scanner scnr = new Scanner(System.in);
        Integer numStudents;


        System.out.println("Enter the amount of students in your class.");

        numStudents = scnr.nextBigInteger();
        String[] studentNames = new String[numStudents];

        System.out.println("Enter your students' full names.");

        Integer i = numStudents;
        while (i >=0) {
            i--;
                studentNames[i] = scnr.nextLine();
                System.out.println(i);
            }


        while (numStudents >=0)
        {
            numStudents--;
            System.out.println(numStudents);
            System.out.println(studentNames[numStudents]);
        }

        }

    }

numStudents 太小而无法工作,它给出了一条错误消息,指出线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 3 at passionProject2.main(passionProject2.java:19)

因为 numStudents 是 -1

标签: javawhile-loop

解决方案


在第 16 行,整数 i = numStudents; numStudents 的值被复制到变量 i。您的 java.lang.ArrayIndexOutOfBoundsException 发生是因为您需要在 while 指令条件中使用 ">" 而不是 ">=";在每个 while 循环的最后一次迭代中,您输入 -1。

import java.util.Scanner;
public class passionProject2 {
public static void main(String[] args) {

    Scanner scnr = new Scanner(System.in);
    Integer numStudents;


    System.out.println("Enter the amount of students in your class.");

    numStudents = scnr.nextBigInteger();
    String[] studentNames = new String[numStudents];

    System.out.println("Enter your students' full names.");

    Integer i = numStudents;
    while (i >0) {
        i--;
            studentNames[i] = scnr.nextLine();
            System.out.println(i);
        }


    while (numStudents >0)
    {
        numStudents--;
        System.out.println(numStudents);
        System.out.println(studentNames[numStudents]);
    }

    }

}

推荐阅读