黑马程序员技术交流社区

标题: while的小问题 [打印本页]

作者: 赵嘉男    时间: 2012-5-20 17:35
标题: while的小问题
        public static void main(String[] args) {
                int x = 1;
                while(x<=3)
                {
                        System.out.println("x="+x);
                        x++;
                }
                System.out.println(x);

        }

}
结果:
x=1
x=2
x=3
4
最后一个结果x怎么等于4呢,都出了大括号了,为什么不是1呢,
作者: 蒋映辉    时间: 2012-5-20 17:41
你的X的作用域是整个main函数    在循环里加了   后面肯定也是加了的值啊
作者: 8161776    时间: 2012-5-20 17:54
本帖最后由 杨尧 于 2012-5-20 17:55 编辑

  1.         public static void main(String[] args) {
  2.                 int x = 1;
  3.                 while(x<=3)
  4.                 {
  5.                         System.out.println("x="+x);
  6.                         x++;
  7.                 }
  8.                 System.out.println(x);

  9.         }

  10. }
  11. 结果:
  12. x=1
  13. x=2
  14. x=3
  15. 4
  16. 最后一个结果x怎么等于4呢,都出了大括号了,为什么不是1呢,

  17. //因为你x自增了,++是给x自增的,x的作用于是main函数里,你一共自增了3次,所以最后打印是4
复制代码

作者: 杨康    时间: 2012-5-20 17:58
当你x=3的时候 还满足条件,他会继续执行循环体,执行完了s.o.p后 ,还有个x++,又完成了一次自增,这时候x=4.又返回while循环,判断x不满足小于等于3,直接跳到最后的输出语句,结果当然是4.
作者: 龚正军    时间: 2012-5-20 18:15
楼主注意:你忘记了变量的定义。

int x=1;  -----------------中的 X是变量,而这个变量作用的范围是整个函数(方法)。这点你要明白。

while(){}后,-----------------------x是4了,这点解释下。当最后一次循环后打印是X=3,但是后面还有句X++;所以X最后出循环的时候是4了,这点要清楚。

然后你的疑问是int x=1; 作用整个函数(方法),为什么X不是继续是1,而是循环结束后的4难????

------------------------------楼主,所谓变量,就是在不停变化的量啊,都变成了4了,你怎么还要求他是1难?

--------------------------------int x=1; ----只是对变量x初始化(也就是一开始的值),但是可以随时更改的啊,这才是变量啊!!
作者: niceBoy    时间: 2012-5-20 22:20
x作用与整个main
作者: 程旦    时间: 2012-5-20 22:56
首先x在整个main函数里  最后一次循环x++后 x变成4  正因为此时x=4了 所以才跳出循环了

作者: hongbo    时间: 2012-5-20 23:06
x=3时,while判断x=3,做一次循环,循环中有个x++,所以x此时为4.
作者: 彩虹    时间: 2012-5-21 00:08
分析:一开始X=1,循环开始,满足条件打印出x=1;接下来x++,x变为2
                  x=2,满足条件,打印出x=2;x++,x变为3
                  x=3,满足条件,打印出x=3;x++,x变为4
                  x=4,不满足循环条件,跳出循环
循环是跳出来了,但x此刻等于4,所以打印出了4         
            
作者: 陌花╮有意、    时间: 2012-5-21 01:39
这个x在main函数内 所做的一切对x的变化都有效 除非在main函数括号外
作者: 我能驾驭住    时间: 2012-5-21 08:44
本帖最后由 我能驾驭住 于 2012-5-21 08:50 编辑

public static void main(String[] args) {
                int x = 1;
                while(x<=3)//它的意思是当x<=3的时候执行大括号里面的语句
                {
                        System.out.println("x="+x);//这肯定是执行打印三次 分别是x=1,x=2,x=3 对吧;没有疑问是吧!
                        x++;//执行到x=3的时候,执行这个语句,x的值是不是自动+1,就变成x=4了是吧,然后返回到whille语句
                    再进行判断,如果满足条件再执行循环体,不满足条件退出循环!很显然4大于3,则退出,但这
                    时候, x的值是4!所以x=4的时候退出了.....向下执行......
                }
                System.out.println(x);//循环退出后,执行到这一条语句,所以这里打印取x=4的值!

        }

}

注:while语句是,直到条件不满足才退出循环体!
作者: 荣天    时间: 2012-5-21 09:26
  public static void main(String[] args) {
                int x = 1;
                while(x<=3)
                {
                        System.out.println("x="+x);
                        x++;
                }
                System.out.println(x);

        }

}
当while  执行玩后    x++;   x的值3  在加1   
在最后输出时:4   (3+1)




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