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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2014-3-8 12:17  /  988 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 我为你着迷 于 2014-3-8 12:21 编辑

毕老师视频中这么一个小程序,如下

int y=0;
while(y<3)
{
        System.out.printlin("y="+y);
        y++;
}
        System.out.printlin("y===="+y);
        
打印结果是y=0,y=1,y=2,y====3我想问的是最后一个打印为什么结果是y====3啊,这个结果是怎么来的啊  前边我知道可以算的出来,但是到到最后为什么突然是y====3了呢,这哥们的值是怎么出来的呢  ? 不知道大家对这个结果有没有印象 , 麻烦知道的帮忙解答下,谢谢了。

评分

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

查看全部评分

8 个回复

倒序浏览
y等于0,满足条件输出0,y等于1,满足条件输出1,y等于2,满足条件输出2,y等于3,不满足条件,跳出循环,输出3。

评分

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

查看全部评分

回复 使用道具 举报
while里面的代码循环了三次

就是你前面打印的三次  y=0  y=1  y =2    你是先打印然后  在y++的  所以 循环结束时   

y的值就等于3啦


评分

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

查看全部评分

回复 使用道具 举报
当y=2时,下一步执行 y++,y值变为3,然后判断循环条件(y<3)不满足
之后执行System.out.printlin("y===="+y);就输出y===3

评分

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

查看全部评分

回复 使用道具 举报
这里的y是个变量,while(条件表达式){
                                                             执行语句;
                                                      }
当y自增为3时,已不满足y<3这个条件,所以函数继续往下执行,打印出y===3。

评分

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

查看全部评分

回复 使用道具 举报
当循环体结束的时候,y值是3,不小于3,所以最后输出的就是3啦
回复 使用道具 举报
当y等于2的时候,在++就等于3就超出while循环了,打印结果就是3了
回复 使用道具 举报

当变量y等于0,执行循环体,满足条件打印结果是0,执行y++,y等于1,执行循环体,满足条件打印结果是1,y++,y等于2,满足条件打印的结果是2,又y++,y等于3,不满足条件,就结束本次循环,循环外面打印的是最后一次y++的值,所以打印的结果是3。

评分

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

查看全部评分

回复 使用道具 举报
int y=0;
while(y<3)    //当y = 2时  是满足的继续执行
{
        System.out.printlin("y="+y);    //y输出2  
        y++;                                    // y++ 现在 y=3 是吧!然后返回第一步  y=3<3这个是不满足条件所以不                                          
                                                    //执行但是,y已经等于3了 所以最后会有一个 y======3;
}
        System.out.printlin("y===="+y);

评分

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

查看全部评分

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