黑马程序员技术交流社区

标题: for循环的问题 [打印本页]

作者: 系磊    时间: 2012-8-8 20:31
标题: for循环的问题
class ForDemo
{
        public static void main(String[] args)
        {
                for(int x = 0;x<3;x++)
                {
                        System.out.println("x="+x);
                }
                               // System.out.println("x==="+x);

                int y = 0;
                while(y<3)
                {
                        System.out.println("y="+y);
                        y++;
                }
                System.out.println("y===="+y);
        }
}
这是毕老师视频里的一个列子视频里面老是最后要打印for循环结束时x的值,但是变量x在for循环结束时就在内存中释放了没能得到“x===3”这个结果,请问如果想打印for循环结束时x的值要怎么弄?
作者: 杨震    时间: 2012-8-8 20:50
本帖最后由 杨震 于 2012-8-8 20:52 编辑
  1. class ForDemo
  2. {
  3.          public static void main(String[] args)
  4.          {
  5. <font color="red">                 int x;</font>
  6.               <font color="red">   for(x = 0; x < 3; x++)</font>
  7.                //  for(int x = 0;x<3;x++)  <font color="red">  //变量x在for循环外面定义就行了</font>
  8.                  {
  9.                          System.out.println("x="+x);
  10.                  }
  11.                                 // System.out.println("x==="+x);

  12.                 int y = 0;
  13.                  while(y<3)
  14.                  {
  15.                          System.out.println("y="+y);
  16.                          y++;
  17.                  }
  18.                  System.out.println("y===="+y);
  19.          }
  20. }
复制代码

作者: 杨政    时间: 2012-8-8 21:01

class ForDemo
{
        public static void main(String[] args)
        {
           int x;   
         for(x = 0;x<3;x++)
                {
                        System.out.println("x="+x);
                }
                               // System.out.println("x==="+x);

                int y = 0;
                while(y<3)
                {
                        System.out.println("y="+y);
                        y++;
                }
                System.out.println("y===="+y);
        }
}
x定义为成员变量就OK了吧
作者: 焦晨光    时间: 2012-8-8 21:02
请问如果想打印for循环结束时x的值要怎么弄?
首先 你可以将该变量设置为成员变量 成员变量的作用范围是整个类
所以
class ForDemo
{
        public static void main(String[] args)
        {
                int x;//在for循环外部定义的成员变量
                for(int x = 0;x<3;x++)
                {
                        System.out.println("x="+x);
                }
                       System.out.println("x==="+x);
}

通常不建议这么做,因为你在循环体外定义循环变量的初值,很可能会在循环外改变循环变量的值
这样就会影响到循环,所以 一般不建议对循环变量进行各种运算 单层循环不明显
假如嵌套循环 你在循环外使用了循环变量的值 肯定会影响到下次循环
所以 从java编程的角度分析 不建议 在循环外部定义循环变量 更不允许在外部使用循环变量
(特殊情况除外)
作者: 系磊    时间: 2012-8-8 21:21
焦晨光 发表于 2012-8-8 21:02
请问如果想打印for循环结束时x的值要怎么弄?
首先 你可以将该变量设置为成员变量 成员变量的作用范围是整 ...

学习了0.0.
作者: lsle    时间: 2012-8-9 15:20
class ForDemo
{
        public static void main(String[] args)
        {
                int x;//在for循环外部定义的成员变量
                for(int x = 0;;x++)
                {
                       if(x<3)
                         System.out.println("x="+x);
                       else
                         {
                           Sytem.out.println("x="+x);
                           break;
                          }
                }
                       System.out.println("x==="+x);
}





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