一道Java程序题,主要是考察for循环如下所示:
public class Test { static boolean fun(char c) { System.out.print(c); return true; } public static void main(String[] args) { int i=0; for(fun('A');fun('B')&&(i<2);fun('C')) { i++; fun('D'); } } }
这道题考察的就是对for循环的理解。for(A,B,C){执行语句},在for循环中,A代表的是初始化语句,B代表判断语句,C代表循环条件。
即for(初始化语句,判断语句,循环条件){执行语句}。
对于上面的程序for(fun('A');fun('B')&&(i<2);fun('C'))
首先,方法fun(‘A’)是初始化条件,所以只执行一次,fun(‘A’)返回打印A。
然后,当i=0时, 符合i<2的循环条件,执行fun(‘B’)打印B,然后执行大括号内的循环语句,执行i++,输出D,最后执行fun(‘C’),输出C。这次循环的输出结果是ABDC。
同理,i=1时,执行结果是BDC,i变为2。
最后,fun('B')&&(i<2)的执行是从左向右,fun(‘B’)输出B,2<2不成立,终止循环。
所以,最终输出的结果是ABDCBDCB。