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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张红伟 中级黑马   /  2013-9-8 18:23  /  1990 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-9-11 17:41 编辑

今天在看毕老师的视频中看到,while语句的讲解;有点不是太明白。
      
  class whiledemo{
    public static void main(String【】 args){   
    int y=0;
   while(y<3){
   System.out.println("y="+y);
  y++;
}
   System.out.println("y===="+y);
}
}
为什么y====3呢

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

13 个回复

倒序浏览
  1.   class whiledemo{
  2.     public static void main(String【】 args){   
  3.     int y=0;
  4.    while(y<3){
  5.    System.out.println("y="+y);
  6.   y++;
  7. }
  8.    System.out.println("y===="+y);
  9. }
复制代码
while的执行方法是先判断后执行
当y=2的时候
符合y<3的条件
于是又进入循环体 打印出了y=2
然后执行 y++ 这时候y=3
当再次判断的时候就不符合y<3这一条件
于是跳出循环,但是y的值还是3

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报 1 0
恩恩  懂了,谢谢,嘿嘿
回复 使用道具 举报
首先,Y在while循环中循环了3次。所以你看到打印出的结果是y分别等于0,1,2,当y=3时,才跳出while循环。所以最后打印的那个y====3。

评分

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

查看全部评分

回复 使用道具 举报
while 语句中是先判断在执行,当y++后等于3时,再次判断的话y<3返回false,所以不再执行{}中的语句,所以后面直接输出y====3
回复 使用道具 举报
第一种理解:
总共进了循环3次,这个可以理解吧(分别是y=0、y=1、y=2时进入循环),每次进入循环y的值都会自加1,那么y总共自加了3。所以,最后y=3。
第二种理解(最简单嘛):
想一想最后一次为什么进不去循环了???
因为 y=3 (不满足y<3)了嘛,是吧。
回复 使用道具 举报
当y的值等于2的时候,判断while循环的条件依然成立,进入循环语句。打印y===2之后y自增,此时y=3.跳出while循环,继续向下执行代码。执行到打印语句是,y被打印。。。。。此时的y已经是3喽
回复 使用道具 举报
这个其实是while循环语句是先判断条件所至的,其实y是被赋值为3,但是判断条件的时候已经不符合循环条件,当然不会被打印了!
回复 使用道具 举报
循环执行了3次,最后一次循环中y++语句使y的值从2变成了3
但当y=3时已不满足循环条件
所以最后结果y的值是3
回复 使用道具 举报
循环执行了3次,最后一次循环中y++语句使y的值从2变成了3
但当y=3时已不满足循环条件
所以最后结果y的值是3
回复 使用道具 举报
因为while最后执行的时候y++了,当y=3的时候不满足while的条件所以循环结束,而此时对应的y的值为3
回复 使用道具 举报
因为在循环内部,执行打印之后y++一次,当打印y=2的结束的时候y自增了一次,此时y的值为3,而这是不满足条件循环结束,y对应的值为3;
回复 使用道具 举报
楼主,你好,如果您的问题解决了!


请把您问题的未解决更改为已解决

谢谢合作!


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