检索并显示数组中无穷无尽的数字

时间:2013-01-19 06:21:15

标签: java arrays numbers

我试图创建一个程序来检索用户输入的无数个数字,直到用户退出并显示数字。这是我到目前为止的代码。输入第一个和第二个数字后,它显示异常在行array1 [i] = s1

import java.util.Scanner;

公共课程Program_2 {

public static void main(String[] args) {
    int a=1,i;
    Scanner sn = new Scanner(System.in);
    String[] array1= new String[a];     
    for(i=0;i<a;i++)
    {   


        System.out.println("Enter Value Number "+ (i+1));
        System.out.println("Press Q or q to Exit");
        String s1=sn.next();
        if(s1.equalsIgnoreCase("q"))
        {               
            for(i=0;i<a;i++)
            {                   
                System.out.println("Value of Number "+(i+1)+" is "+ array1[i]);

            }
            a=0;
        }
        else
        {
            array1[i]=s1;
            a=(i+2);
        }

    }

}

}

2 个答案:

答案 0 :(得分:0)

您的array大小为1(代码开头的a为1)。 第一个输入有效,因为i为0且array1[0]存在。第二个输入崩溃,因为array1[1]不存在。

您需要增加阵列。这可以通过将数组复制到更大的数组并使用副本的结果来完成,但这很笨拙。

更好的方法是使用ArrayList而不是简单的array,您不必担心自动管理的大小。

答案 1 :(得分:0)

对于一个,当你按下else语句时,只有当你按q时才会增加a。因此,for循环将在几次迭代后结束。

你也在内部for循环中设置为0,确保它不会运行更多。

此外,您的退出代码不会退出。