我试图创建一个程序来检索用户输入的无数个数字,直到用户退出并显示数字。这是我到目前为止的代码。输入第一个和第二个数字后,它显示异常在行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);
}
}
}
}
答案 0 :(得分:0)
您的array
大小为1(代码开头的a为1)。
第一个输入有效,因为i为0且array1[0]
存在。第二个输入崩溃,因为array1[1]
不存在。
您需要增加阵列。这可以通过将数组复制到更大的数组并使用副本的结果来完成,但这很笨拙。
更好的方法是使用ArrayList
而不是简单的array
,您不必担心自动管理的大小。
答案 1 :(得分:0)
对于一个,当你按下else语句时,只有当你按q时才会增加a。因此,for循环将在几次迭代后结束。
你也在内部for循环中设置为0,确保它不会运行更多。
此外,您的退出代码不会退出。