该程序应该询问有多少动物在野外留下5次。然后它应该使用第二种方法输出相同的信息。但我无法弄清楚这一点;每次我根据以前的问题改变任何东西,我只是添加错误的数量。
img.save
所以这个编译好了,然后当我在每个循环后在终端中添加了5个数字
import java.util.Scanner;
class animals {
public static void main(String[] args) {
int[] q1 = question();
output(q1);
System.exit(0);
} // exit main
public static int[] question() {
String[] wild = { "Komodo Dragon", "Mantee", "Kakapo", "Florida Panther", "White Rhino" };
int number = 0;
int[] record = {};
for (int i = 1; i <= 5; i++) {
System.out.println(wild[number] + ":");
Scanner scanner = new Scanner(System.in);
System.out.println("How many are left in the wild?");
int howMany = scanner.nextInt();
record = new int[] {howMany};
number++;
}//end for loop
return record;
}// end method question
public static void output(int[] q1){
System.out.println("There are " + q1[0] + " Komodo Dragons in the wild");
System.out.println("There are " + q1[1] + " Mantees in the wild");
System.out.println("There are " + q1[2] + " Kakapos in the wild");
System.out.println("There are " + q1[3] + " Florida Panthers in the wild");
System.out.println("There are " + q1[4] + " White Rhinos in the wild");
}//end method output
} // end class animals
除了我获取文本的事实,提供的monodo龙数是我输入的最后一个数字而不是第一个
答案 0 :(得分:3)
这没有意义
int[number] record = {};
最像你的意思
int[] record = new int[wild.length];
而不是
for (int i = 1; i <= 5; i++) {
你需要
for (int i = 0; i < wild.length; i++) {
而不是以下创建1值[0]
record = new int[] {howMany};
当您尝试访问[1]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
你需要
record[i] = howMany;
当您在IDE(或编辑器)中编写每行代码时,您应该看到是否编译并且如果不添加更多行,则不太可能有所帮助。我建议你尽可能多地尝试编译和测试,以便知道错误来源的位置,当你遇到错误时,你可以逐步调试调试器中的代码,看看为什么程序没有按照你的意愿行事。
答案 1 :(得分:0)
这就是你需要的:
int number = 0;
int[] record = new int[5];
以及您需要做的另一项修改:
int howMany = scanner.nextInt();
record[number] = howMany;
从最后一行删除评论。
现在你的程序应该可以正常工作。
了解一些有关数组的基本知识。