我创建了一个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
答案 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++;
}