黑马程序员技术交流社区

标题: 帮忙 看下代码解释一下 [打印本页]

作者: 温立华    时间: 2013-10-11 08:10
标题: 帮忙 看下代码解释一下
本帖最后由 温立华 于 2013-10-14 21:10 编辑

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;
        }
}
for(f.show('A'); f.show('B')&&(i<2);f.show('C'))这条语句中 为什么运行到f.show('B')这的时候代码跳出

作者: 喝龙血的我    时间: 2013-10-11 08:24
  1.        boolean show(char a)
  2.         {
  3.                 System.out.println(a);
  4.                 return false;
  5.         }
复制代码
重写了父类的show方法。
f.show('B')这一步判断的时候返回了false ,所以循环结束了,
作者: 王飚    时间: 2013-10-11 12:29
因为双与&&是两个都为true的时候结果才为true,所以,只要符号两边有一个false结果就是false,所以在循环条件表达式中:for(int x=0;/*注意,这里只要结果为false,就会跳出循环*/;x++)-->这样就会跳出循环;
作者: a283398689    时间: 2013-10-11 16:35
因为你在里面有一个return     return代表不执行下面的代码直接跳出
作者: 赖波    时间: 2013-10-11 20:59
1.for的三要素错了,第一个表达式是初始部分,变量赋初值,第二个表达式条件语句,第三个修改变量的值。
你搞个for(ture;ture;ture){}这是不行的。
2.再说你的 for(f.show('A'); f.show('B')&&(i<2);f.show('C'))这show()方法返的是flase因重写了父类方法是子类方法了

作者: 黄文伯    时间: 2013-10-12 19:05
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
作者: 黄文伯    时间: 2013-10-12 19:05
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
作者: 黄文伯    时间: 2013-10-12 19:06
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2