为什么计数器没有在所述for循环中初始化?

时间:2014-04-29 14:15:17

标签: java initialization declaration

此时我开始疯了。请指出我在这里错误输入的内容。

在赦免代码增加两次后,我收到第11行的错误,即打印输出行,计数器无法解析为变量。

import java.util.Scanner;
//import java.util.Random;
public class overpower {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        //Random numgen = new Random();
        int arraytest[]={1,2,5,8,9};
        //int counter = 0;

        for(int counter = 0; counter < arraytest.length; counter++);
            System.out.println(arraytest[counter]);
        counter++;
    }
}

5 个答案:

答案 0 :(得分:4)

以下是更多详细信息,但MaxMega评论100%正确

你没有for循环。你有一行语句增加计数器并且什么都不做。

按如下方式更改您的代码:

for (int counter = 0; counter < arraytest.length; ++counter) // No semicolon here.
{
    // this stuff will execute each time through the loop.
    System.out.println(arraytest[counter]);
    // remove this: counter++, as stated by Salah,
    // it is double incrementing the counter variable
}

答案 1 :(得分:1)

你有三个主要问题:

  1. 你错过了if开放式支架。
  2. 您必须删除if语句
  3. 末尾的分号
  4. 您需要删除计数器的第二个增量
  5. 因此,请尝试更改您的代码:

    for(int counter = 0; counter < arraytest.length; counter++) { // remove the semicolon and add the opening bracket.
        System.out.println(arraytest[counter]);
    }
    

答案 2 :(得分:0)

import java.util.Scanner;
//import java.util.Random;
public class overpower {
public static void main(String args[]){
   Scanner input = new Scanner(System.in);
   //Random numgen = new Random();
   int arraytest[]={1,2,5,8,9};
   //int counter = 0;

for(int counter = 0; counter < arraytest.length; counter++)//; - you don't need this semi-colon
    {// you do need this brace character
    System.out.println(arraytest[counter]);
    // counter++; you don't need to increment the counter if you do it in the for loop.
    }

}

答案 3 :(得分:0)

编写代码时,建议您在IDE中使用格式化程序。它会像这样格式化你的代码。

for(int counter = 0; counter < arraytest.length; counter++);
System.out.println(arraytest[counter]);

println不在循环中,因为你在for()的末尾有一个;。由于它不在counter内,因此超出范围且无法使用。

删除;末尾的for(),它应该编译。

答案 4 :(得分:0)

对于任何循环,你不需要在它的末尾添加任何分号。就像你在这里一样,

for(int counter = 0; counter < arraytest.length; counter++); // This semicolon doesn't live here{
System.out.println(arraytest[counter]);
}

如果你这样做会更好:

for(int counter = 0; counter < arraytest.length; counter++) {
System.out.println(arraytest[counter]);

如果你真的希望计数器增加1,那么为什么要把计数器加两次?这不会使它成为一个有效的程序,而且它可能导致可能的错误输出,因为它在每次循环运行时增加2,一次在进入时和由于重复计数器++而退出时。建议你删除它,除非你需要,否则如果你真的需要,那么你可以把它放在两个计数器++上:

for(int counter = 0; counter < arraytest.length; counter = counter + 2) {
System.out.println(arraytest[counter]);
}

我希望我可以帮到你。谢谢!