我有一个大小为4的数组,我想检查该数组是否包含数字8(显然不是),代码仅用于测试。
在for循环中,j从0变为3,所以循环中j的最终值为3。但是,我不理解为什么循环后 j的值已更改为4,为什么还不是3 ?
public class Test {
public static void main (String[] args) {
int[] a = new int[4];
a[0] = 2;
a[1] = 3;
a[2] = 4;
a[3] = 5;
int n = a.length; // n = 4
int number = 8;
int j;
for (j = 0; j < n; j++) {
if (a[j] == number) {
System.out.println("The number is at place " + j);
break;
}
// Last value of j is 3:
System.out.println("Value of j after each iteration " + j);
}
// But here j is 4?
System.out.println("Value of j after the for-loop: " + j);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
每次迭代后的j值0每次迭代后的j
值1每次迭代后的j
值2
每次迭代
后的j值3 for循环后的j值:4
是的,因为在for循环的末尾,变量有一个增量。for循环可以重写为:
int j = 0;
while(j < n) {
//code
j++;
}
Run Code Online (Sandbox Code Playgroud)
因此,最后一次迭代j将递增,并转到条件中,并且它为false,因此不会输入for循环的主体。为了使循环结束,j必须大于或等于条件。
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |