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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵小豪 中级黑马   /  2014-4-14 21:00  /  1151 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵小豪 于 2014-4-15 11:38 编辑

public class test4 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                for(int i = 0;i<6;i++){
                        int k = ++i;
                        while(k<5){
                                System.out.print(i);
                                k+=2;
                        }
                }
        }

}

4 个回复

倒序浏览
当i=0时,进入for,执行一句后,k=1,i=1,进入while循环,打印1,执行k+=2,此时,k=3,继续while循环,打印1,再执行k+=2,k=5,不符合while条件,执行i++,此时i=2,执行int k=++i;此时k=3,i=3,进入while,打印3,执行k+=2,此时k=5,不符合while条件,此时i=3,执行,i++,此时i=4,执行 int k = ++i;,此时k=5,i=5,不符合while,继续i++,i=6,退出for,因此打印结果是1  1  3

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
月光海 发表于 2014-4-14 21:16
当i=0时,进入for,执行一句后,k=1,i=1,进入while循环,打印1,执行k+=2,此时,k=3,继续while循环,打印1 ...

完全正确啊!
回复 使用道具 举报
当i=0的时候,判断i<6为真,开始for循环,k=++i(++在前面先执行i=1,k=1),进入while,判断k=1<5为真,进入while循环。输出i=1;执行k+=2;k=3;在判断k=3<5;再次输出i=1;然后继续执行k+=2,k=5,判断k=5<为假,结束while循环,执行i++,i=2,判断i=2<6为真,执行for循环,k=++i,k=3(因为k定义在for循环语句第一位,for的每次循环都会将k重新赋值),进如while循环,判断k=3<5,为真,输出i=3,执行k+=2,k=5,不满足while条件,跳出循环,执行i++,i=4,判断i<6;执行k=++i,k=5,不满足while循环,执行i++......然后K就一直不满足while的循环条件,i就无法再次输出,直到i<6为假,程序结束。
所以最后输出的结果是:113

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
i++, 先用i,后加1
++i,先加1,后用i
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马