簡體   English   中英

為什么我的數組不打印我的輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM