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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 系磊 初级黑马   /  2012-8-8 20:31  /  1623 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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的值要怎么弄?

评分

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

查看全部评分

5 个回复

倒序浏览
本帖最后由 杨震 于 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. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报

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了吧
回复 使用道具 举报
请问如果想打印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:02
请问如果想打印for循环结束时x的值要怎么弄?
首先 你可以将该变量设置为成员变量 成员变量的作用范围是整 ...

学习了0.0.
回复 使用道具 举报
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);
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马