java - 如何将 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
解决方案
在第 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]);
}
}
}
推荐阅读
- asp.net-mvc - 在 C# mvc 中使用外部 api,无需任何模型,只需 xml 格式
- google-chrome - Chrome 77 远程设备调试问题
- git - 来自 master 分支的 Git rebase/merge 不会更新与当前分支的所有差异
- go - 跨结构的通用 `ToMap` 方法
- c# - C#比较引用和值
- android - 等待函数完成并确保我没有返回错误的值
- android - android studio中的同步项目失败
- php - php数组公共键和数组数组
- php - 我想删除txt文件中的一行
- docker - 如何使用 Phoenix Guides 中的示例在生产模式下运行 Elixir Phoenix Docker?