使用for循环和String数组时出错

时间:2019-02-18 08:01:48

标签: java arrays for-loop

它在数组for中的第二个Alltext上有错误-在错误中它说找不到Alltext的符号,并且我的代码似乎无法因此初始化。

我尝试将第二个for放在第一个for里面,这没用。我什至尝试更改某种方法,例如为String数组编写键代码。

    for (int i = 1; i <= n; i++) {

        System.out.print("Input number : ");
        a = Masuk.readLine();
        n = Integer.parseInt(a);

        System.out.print("Input Text : ");
        a = Masuk.readLine();

        String[] Alltext = {a+" "+n};
    }

    for (String i : Alltext) {

        System.out.println(i);
    }

我期望输出是当我输入数字和文本时,它将在Alltext数组中显示所有数字。

1 个答案:

答案 0 :(得分:2)

因为Alltext的作用域仅在第一个for循环内,就像您在第一个循环内声明的那样。因此,您的代码不知道该循环外是否存在任何名为Alltext的变量。

但是,如果在外部声明它,则将无法在循环中初始化数组,即无法执行此Alltext = {a+" "+n};。数组只能在声明时初始化一次。如果适合您的用例,请改用ArrayList。

您可以执行以下操作:

System.out.print("Total Line : ");
a = Masuk.readLine();
n = Integer.parseInt(a);

String[] Alltext = new String[n];
for(int i = 1;i<=n;i++) {

System.out.print("Input number : ");
a = Masuk.readLine();
n = Integer.parseInt(a);

System.out.print("Input Text : ");
a = Masuk.readLine();

 Alltext[i-1]= a+" "+n;//i-1 because loop starts from 1

}
for(String i : Alltext){
 System.out.println(i);
}