class Fu {
boolean show(char a) {
System.out.println(a);
return true;
}
}
class Demo extends Fu {
public static void main(String[] args) {
int i=0;
Fu f=new Demo();
Demo d=new Demo();
for(f.show('A'); f.show('B')&&(i<2);f.show('C')){
i++;
d.show('D');
}
}
boolean show(char a){
System.out.println(a);
return false;
}
}
/*
A
B
*/
结果是为什么是A、B。这个
for(f.show('A'); f.show('B')&&(i<2);f.show('C')){
i++;
d.show('D');
}
该怎样执行Forjava

解决方案 »

  1.   

    这个for根本就没执行,因为for的判断条件f.show('B')&&(i<2)结果是false,for语句是否执行只和中间那个语句有关系
      

  2.   

    首先执行f.show('A'),这个没疑问吧
    然后是f.show('B')&&(i<2),show()函数在子类里重写了,所以返回的是false,既然条件是false那for循环就不会继续执行了,也就没有后面的D和C了
      

  3.   

    嗯。忘记最后for又成false了。谢谢