关于循环超出数组界限
如果对于js语言,for循环遍历数组如果超过数组界限是不执行的
而while循环是可以超过数组界限的
对于java语言是不行的,都会报错,所以要遍历数组中可能存在可能不在的数据,就需要遍历整个数组,然后进行判定
应该是动态语言和静态语言的差别
关于循环跳出
写了两个相同的循环语句,代码如下
int[] a = { 1, 2, 3, 4, 5, 6 };
int i = 0;
cycle1(i, a);
}
public static void cycle1(int i, int[] a) {
while (i < a.length) {
System.out.println("while循环:" + i + " " + a[i]);
if (i % 2 == 0) {
System.out.println("while循环:" + i + " " + a[i]);
break;
}
i++;
}
}
int[] a = { 1, 2, 3, 4, 5, 6 };
int i = 0;
cycle2(i, a);
}
public static void cycle2(int i, int[] a) {
for (i = 0; i < a.length; i--) {
System.out.println("for循环:" + i + " " + a[i]);
if (i % 2 == 0) {
System.out.println("for循环:" + i + " " + a[i]);
break;
}
}
}
两个循环是一样遍历数组的,跳出的条件也一样,但是运行结果却是不一样的
for循环:0 1
for循环:0 1
while循环:0 1
while循环:0 1
由此可得,在循环里面,当执行到满足循环跳出语句时,循环体里面的语句在break前的语句都会执行 continue类似
其中在java中,for循环不能n
单独在for
循环的第一个区域中使用。但是,可以将其留空:
for ( ; n>1 ; n-=1) {
// ^
// Nothing
}