问下面代码输出结果,并解释谢谢
public class Test {
public Test() {
}
public static boolean foo(char c)
{
System.out.println(c);
return true;
}
public static void main(String[] args)
{
int i = 0;
for(foo( 'a '); foo( 'b ')&&(i < 2); foo( 'c '))
{
i++;
foo( 'd ');
}
}
}
------解决方案--------------------a
b
d
c
b
d
b
随便写了一下,不知道对不对
------解决方案--------------------a
b
d
c
b
d
c
b
for(初始化部分;循环条件;迭代部分){
循环体
}
执行for语句时,先执行初始化部分,这部分只会被执行一次,接下来计算作为循环条件的布尔表达式,
如果为true,就执行循环体,接着执行迭代部分,然后再计算循环条件,如此反复。
------解决方案--------------------for(foo( 'a '); foo( 'b ')&&(i < 2); foo( 'c '))
{
i++;
foo( 'd ');
}
===〉
foo( 'a ');
for(i=0; i <= 2; i++;)
{
foo( 'b ');
if(i < 2)
{
foo( 'd ');
foo( 'c '));
}
}
转化成这样你可能就明白了