For Loop无法正确打印出来

时间:2019-01-20 19:20:24

标签: java loops for-loop

我创建了一个for循环。

我该怎么做才能打印出来:test0 test1 test2 test3

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

        int x = 0;
        System.out.println("test"+x);
        x++;

    }

但是它不会打印出来:test0 test1 test2 test3

它打印出: 测试0 测试0 测试0 测试0

6 个答案:

答案 0 :(得分:2)

您需要将“ x”更改为“ i”,因为“ i”是索引变量,每次迭代增加1。 “ x”是一个局部变量,并且始终为0,因为您在每次迭代时都将其重新定义。您可以这样做:

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

    int x = 0;
    System.out.println("test" + i);
    x++;

}

或者这个:

int x = 0;
for(int i = 0; i < 4; i++) {

    System.out.println("test" + x);
    x++;

}

答案 1 :(得分:0)

因为在每次迭代中都定义了x。将x放入循环之外。在它上面。

int x = 0
for (...) { }

答案 2 :(得分:0)

for (int i = 0; i < 4; i++) {
    System.out.println("test"+i);
}

或//如果您坚持使用x!

for (int i = 0; i < 4; i++) {
    int x = i;
    System.out.println("test"+x);
}

答案 3 :(得分:0)

您可以在Oracle 'for Statement' documentation中找到非常相似的示例:

  

for语句提供了一种紧凑的方法来迭代一系列   价值观。程序员经常将其称为“ for循环”,因为   重复循环直到特定条件发生的方式   满意。 for语句的一般形式可以表示为   如下:

     

for (initialization; termination; increment) { statement(s) }

     

使用此版本的for语句时,请记住:

     
      
  • 初始化表达式初始化循环;它被执行了   一次,因为循环开始了。
  •   
  • 当终止表达式计算为   否,循环终止。
  •   
  • 增量表达式在之后被调用   循环中的每次迭代;这是完全可以接受的   表达式以增加或减少值。
  •   

您需要在循环外部声明x,否则在每次迭代后它将被设置为0。因此,根据您的情况,它将是:

int x = 0;
for (int i = 0; i < 4; i++) {
    System.out.println("test" + x);
    x++;
}

在此示例中,您无需声明两个变量,可以使用为循环声明的变量来获得相同的结果:

for (int i = 0; i < 4; i++) {
    System.out.println("test" + i);
}

由于此帖子有很多类似的答案,因此我将参考另一种做为Oracle 'for Statement' documentation的特殊循环的方法,即“增强循环遍历数组”:

 int[] numbers = {0,1,2,3};
 for (int item : numbers) {
   System.out.println("test" + item);
 }

答案 4 :(得分:0)

您可以使用赋值运算符=0赋值x。变量x每次更新为 0 。所以它打印出来:test0 test0 .....因为它在for循环内。

如果变量x是在for循环之外声明的,而此时x并未用0更新,则它只是用x=x+1的意思是{{1 }}运算符。因此它将增加并完美地工作。还有一点,这里++是for循环的全局变量,可以在for循环内部访问。请参阅下面的代码。

x

答案 5 :(得分:0)

您已经使用x作为打印出来的变量。您应该考虑变量x的范围。每次循环再次运行时,x都会在循环内部声明时将其值重置为0。最后增加x对您无济于事,因为在循环的下一次迭代运行时x的值将重置为0。而是用 i 替换x或在循环外声明一个新变量。

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

    int x = 0;
    System.out.println("test" + i);
    x++;

}

或者您可以

int a = 0;
for(int i = 0; i < 4; i++) {
System.out.println("test" + a);
a++;
}