关于Javafor循环的问题

img

这个for循环是什么循环啊,第一次见,没有上机de过(没电脑)。

这就是个普通的for循环,没有任何特别的
没人规定for里只能写int,那是你见的代码少,只见过以int开头的for循环而已
for(a;b;c)
a,b,c是三个表达式
a在初始化时执行一次,b每次循环之前作为是否继续循环的判断条件,c每次循环之后执行
这里a=foo('A'),b=foo('B'),c=foo('C')
也就是说,foo('A')只执行一次
当foo('B')的返回值为true时继续循环,是false是结束循环
每执行一轮,最后执行foo('C')

1、static boolean foo(char c)静态方法是打印传入的形参c并返回true,该方法返回值一直为真。
2、for循环()内第一个分号;前只会执行一次,即foo('A')只执行一次。第二个分号;前是判断是否进入循环的条件,所以每次进入循环前会执行这里,由于foo返回值一直为真,故只需要i<2即结束循环,但每次进入循环前都会执行foo('B')。第三个分号;前是当次循环结束后执行这里,即{}内部执行完会执行这里,所以foo('C')会在foo('D')后执行。
3、该循环中foo的执行情况如下:
foo('A') -> foo('B') i=0 -> foo('D') -> foo('C') -> foo('B') i=1 -> foo('D') -> foo('C') -> foo('B') i=2 结束循环