为什么我不能在for循环中打印两次循环值

时间:2017-03-06 11:44:01

标签: java

我正在制作for循环,我发现了一个奇怪的问题。 在for循环中,我可以创建一个System.out.println(i); 打印出我,它完美地运作。但是,如果我尝试 要添加第二行打印出i + 1,我收到错误, 说'我无法解决变量'。

为什么我无法打印“我”的价值?内部两次相同 for loop?

public static void main(String[] args) {

    for (int i = 0; i<5; i++)

    System.out.println(i);
    System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable'

}

5 个答案:

答案 0 :(得分:1)

试试这个

public static void main(String[] args) {
for (int i = 0; i<5; i++){
    System.out.println(i);
    System.out.println(i+1);
} 
}

如果您不在 for / if 上使用括号 {} ,则只会将下一行视为其内容。因此,在您的代码中,只有第一个打印被视为for循环的内容。要键入更多行,您需要使用括号{};

答案 1 :(得分:1)

在java和许多其他语言中,块由诸如{}之类的块标记。这些内部的所有内容都在范围内。如果跳过一个循环的行程(它与哪个循环无关),只有下一行作为循环体。所以,你的代码:

  for (int i = 0; i<5; i++)
      System.out.println(i);
      System.out.println(i+1); 

相当于

  for (int i = 0; i<5; i++) {
     System.out.println(i);
  }
  System.out.println(i+1);

你可以看到,循环中只有一个语句。另一个在外面。你得到的错误是因为变量&#34; i&#34;在该范围内不存在。它只存在于for循环中。

答案 2 :(得分:0)

您缺少括号:

public static void main(String[] args) {

    for (int i = 0; i<5; i++) {

        System.out.println(i);
        System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable'
    }

}

答案 3 :(得分:0)

您必须在大括号内包含两行:

for (int i = 0; i<5; i++)
{
    System.out.println(i);
    System.out.println(i+1); 
}

因为i变量范围仅限于for循环。

答案 4 :(得分:0)

您需要在大括号中添加两个语句,因为您有多个语句而第二个语句在循环之外。

试试此代码

public static void main(String[] args){  

    for(int i=0;i<5;i++){

        System.out.println(i);

        System.out.println(i+1);
    } 

}