[英]Why doesn't my array print out my input?
我正在嘗試制作一個應用程序,要求用戶輸入數組中的項數,然后要求他們用整數填充該數組。 然后,將其打印出來。
當我運行它時,它會要求我輸入,但隨后會給我:
線程“主”中的異常java.lang.ArrayIndexOutOfBoundsException:main.main處為10(main.java:13)
import java.util.Scanner;
public class main {
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
System.out.println("Input number of units in array: ");
int i1 = scan.nextInt();
int[] arrayOne= new int[i1];
for(int i=0 ; i<=i1 ; i++){
System.out.println("Enter " + i + " unit in array.");
arrayOne[i] = scan.nextInt();
}
System.out.println(arrayOne);
}
}
你們可以幫我找出我的錯誤所在嗎? 我嘗試了幾種不同的方法,但似乎沒有任何效果。
謝謝!
數組從零開始。 在這里,您超出了上限。 更換:
for (int i = 0; i <= i1; i++) {
同
for (int i = 0; i < i1; i++) {
還要使用Arrays#toString顯示數組內容,否則將顯示數組的Object#toString表示形式:
System.out.println(Arrays.toString(arrayOne));
您的代碼似乎需要在循環中的每一次進行新的掃描。
您也進行了太多次迭代(與數組大小相比)。
此代碼可能會更好地工作:
import java.util.Scanner;
public class Main
{
public static void main(String [] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Input number of units in array: ");
int i1 = scan.nextInt();
int[] arrayOne= new int[i1];
for(int i=0 ; i<i1 ; i++)
{
System.out.println("Enter " + i + " unit in array.");
Scanner other_scan = new Scanner(System.in);
arrayOne[i] = other_scan.nextInt();
}
for(int i=0 ; i<i1 ; i++)
{
System.out.println("arrayOne["+i+"]: "+arrayOne[i]);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.