来自小米笔试
static boolean foo(charc)
{
System.out.print(c);
return true;
}
public static void main(String[] args) {
int i =0;
for(foo('B');foo('A')&&(i<2);foo('C'))
{
i++;
foo('D');
}
}
上述代码Java函数的执行结果是什么()
A. BADCBDCB
B. BADCADCA
C. BACDBACD
D.不确定
输入IDEA的结果如下:
当然根据结果可以直接选择 --------B
但是也得搞清楚缘由;
以下贴上个人理解
分析理解
平时看到的for循环都是以下的样子:
for (int j = 0; j <10 ; j++) {
System.out.println(j);
}
根据这个代码结合上面题目的代码,来分析一下for循环到底是怎么操作的
首先打个断点进行测试
此时毫无疑问 j=0;
这就代表for循环先执行的是int j=0;这个条件
接下来继续
由于当前的代码并不能确定是否先执行的是 j<10还是j++;
因此通过题目中的代码进行分析
可以发现在执行完B的打印后,代码开始执行A的打印,也就是说
for循环先执行赋值语句,再执行判断条件,
程序继续走:
开始执行for循环中的代码了,
在往下走
此时开始打印C,
由此总结出for循环的执行顺序: