gpt4 book ai didi

java - 如何将 int numStudents 复制到 Integer i?

转载 作者:行者123 更新时间:2023-12-02 09:29:56 24 4
gpt4 key购买 nike

我试图将 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:索引 -1 超出长度 3 的范围 在passionProject2.main(passionProject2.java:19)

因为 numStudents 是 -1

最佳答案

第 16 行,Integer 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]);
}

}

}

关于java - 如何将 int numStudents 复制到 Integer i?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58072738/

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