A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 意映 初级黑马   /  2012-7-30 22:27  /  2799 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TestDemo730 {

        /**
         * @param args
         */
        public static  boolean foo(char c){
                System.out.println(c);
                return true;
        }
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                int i=0;
                for(foo('A');foo('B')&&(i<2);foo('C')){
                        i++;
                        foo('D');
                }

        }

}

5 个回复

倒序浏览
本帖最后由 赵方明 于 2012-7-30 22:41 编辑

public class Foo
  {
      /*
      建立一个函数foo(){},有一个char类型的形参c
      */
  
       public static  boolean foo(char c)
      {
                System.out.println(c);//打印传入的形参c
                return true;//返回值为true
       }
        public static void main(String[] args)
        {
                // TODO Auto-generated method stub
                int i=0;//定义一个int型变量,初始化值为0,下面for循环中的判断语句要用到。
                /*
                for循环,初始化语句为foo('A'),打印A,并返回true
                条件判断语句为foo('B')&&(i<2),左边打印B,返回true,右边也为真,条件判断语句为真,
                执行i++;
                然后执行 foo('D');打印D,返回true,然后执行foo('C'),打印C。
                然后循环继续,直到i=2是,foo('B')&&(i<2)为假,循环结束。
                */
                for(foo('A');foo('B')&&(i<2);foo('C'))
                {
                        i++;
                        foo('D');
                }

        }

}
输出结果为
A
B
D
C
B
D
C
B
回复 使用道具 举报
for中第一个是表达式,最后一个是循环后执行的表达式,中间的是boolean。
一开始,肯定只执行foo('A');输出A;
然后判断,执行foo('B')&&(i<2);true,进入循环体。输出了B;
循环体,输出D;
然后又判断,依次。。。
直到i=2时,foo('B')&&(i<2);变成了false,结束循环。
回复 使用道具 举报
本帖最后由 杨志 于 2012-7-30 23:00 编辑

这个一个关于for循环的问题。
关键理解for中的三个字段。
画了两张图!希望有用!

下面是执行顺序图!

根据上面的数字的顺序来执行。
回复 使用道具 举报
要说这段代码的意思,就是通过foo()方法来查看for循环的执行机制。for循环是先从循环开始变量执行,也就是foo(a),然后判断循环条件,也就是foo(b),然后执行循环代码,也就是foo(d),最后执行循环改变条件,也就是foo(c),这样一个完整的循环完成了。这段代码,用输出语句来代替for循环里面的循环开始变量,循环变量改变语句,在循环条件里面也加上输出语句,目的就在于查看循环机制。剩下的都是为查看循环机制做铺垫,int值的定义和++,还有foo()方法
回复 使用道具 举报
public static void main(String[] args)
    {
        int i=0;
      for(foo('A')/*执行这句的时候会执行方法foo()打印A,返回true,向下执行*/;foo('B')&&(i<2)/*条件成立打印B,继续向下执行*/;foo('C')/*执行这句的时候会打印C,返回true,执行for中第二条语句*/)
        {
           i++;//i自增为1;
         foo('D');//执行这句的时候会打印D,返回true,执行for中第三条语句
    }

    }

}//执行顺序就是这样,其实就是正常的for循环的顺序,依次向下推就是执行这个意思。结果是:A B D C B D C B

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马