黑马程序员技术交流社区

标题: while 语句 [打印本页]

作者: 张红伟    时间: 2013-9-8 18:23
标题: while 语句
本帖最后由 杨增坤 于 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呢

作者: 武嘉豪    时间: 2013-9-8 18:25
  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
作者: 张红伟    时间: 2013-9-8 18:30
恩恩  懂了,谢谢,嘿嘿
作者: 落叶归根    时间: 2013-9-8 18:39
首先,Y在while循环中循环了3次。所以你看到打印出的结果是y分别等于0,1,2,当y=3时,才跳出while循环。所以最后打印的那个y====3。
作者: hmwudizl91zl    时间: 2013-9-8 21:33
while 语句中是先判断在执行,当y++后等于3时,再次判断的话y<3返回false,所以不再执行{}中的语句,所以后面直接输出y====3

作者: 张云飞    时间: 2013-9-8 21:53
第一种理解:
总共进了循环3次,这个可以理解吧(分别是y=0、y=1、y=2时进入循环),每次进入循环y的值都会自加1,那么y总共自加了3。所以,最后y=3。
第二种理解(最简单嘛):
想一想最后一次为什么进不去循环了???
因为 y=3 (不满足y<3)了嘛,是吧。
作者: 辛春鹏    时间: 2013-9-8 21:59
当y的值等于2的时候,判断while循环的条件依然成立,进入循环语句。打印y===2之后y自增,此时y=3.跳出while循环,继续向下执行代码。执行到打印语句是,y被打印。。。。。此时的y已经是3喽
作者: 流浪的风    时间: 2013-9-8 22:04
这个其实是while循环语句是先判断条件所至的,其实y是被赋值为3,但是判断条件的时候已经不符合循环条件,当然不会被打印了!
作者: 陶智第    时间: 2013-9-8 22:48
循环执行了3次,最后一次循环中y++语句使y的值从2变成了3
但当y=3时已不满足循环条件
所以最后结果y的值是3
作者: 陶智第    时间: 2013-9-8 22:49
循环执行了3次,最后一次循环中y++语句使y的值从2变成了3
但当y=3时已不满足循环条件
所以最后结果y的值是3
作者: 王杰庆    时间: 2013-9-9 15:43
因为while最后执行的时候y++了,当y=3的时候不满足while的条件所以循环结束,而此时对应的y的值为3
作者: 王杰庆    时间: 2013-9-9 15:45
因为在循环内部,执行打印之后y++一次,当打印y=2的结束的时候y自增了一次,此时y的值为3,而这是不满足条件循环结束,y对应的值为3;
作者: 杨增坤    时间: 2013-9-9 19:42
楼主,你好,如果您的问题解决了!


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

谢谢合作!







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