我们常见的for循环一般如下
for(int i = 0;i < 10;i++) {
System.out.println(i);
}
运行结果:
那么假如我们要做一个无限循环的for循环呢?
for(;;) {
System.out.println("运行起来了");
Thread.sleep(1000);//程序1秒之后执行
}
运行结果:
好了,介绍一下for循环:
for(初始表达式;循环判断表达式;前进步长表达式) {
循环代码体
}
再来说一下这几个表达式的运行顺序:
1.初始表达式最先执行,并且执行一次,与循环表达式与前进步长表达式可以有关系或者没关系,我的意思假如初始表达式int i = 0;那么循环表达式不一定就是i < 10啥的,可能是j > 20,或者给一个函数返回一个值fun(2)等等,总之循环表达式满足能返回一个真假就行
2.循环表达式开始判断是否满足循环条件,循环执行
3.执行循环代码体,满足条件循环执行
4.在执行前进步长表达式,然后循环执行第二步,第三步,第四步,知道第二步为false为止
那么我们来看一下面这个程序怎么打印?
Demo5.java
package pxx.test1;
public class Demo5 {
public static void main(String[] args) throws InterruptedException {
int i = 0;
for(f('A');f('B') && (i < 2);f('C')) {
i++;
f('D');
}
}
public static boolean f(char c) {
System.out.println(c);
return true;
}
}
上面就是先执行f('A')->打印A,
在判断f('B')->打印B,返回true i=0小于2满足,继续循环,执行循环体i=1,f('D')->打印D
然后执行f('C')->打印C
上面会打印出ABDC
循环还没结束,又走f('B')->打印B,返回true,判断i=1小于2,执行f('D')->打印D,然后执行f('C')->打印C,然后又执行f('B')->打印B,判断i = 2 < 2不满足,循环判断表达式为假,程序退出
这部分打印BDCB
以上程序的执行结果:ABDCBDCB