黑马程序员技术交流社区

标题: 为什么老提示没有初始化cm,明明下了啊? [打印本页]

作者: 潜伏    时间: 2013-11-30 18:56
标题: 为什么老提示没有初始化cm,明明下了啊?
for(int cm;(num=bi.read(arr))!=-1;cm++)
                {
                        if(cm>100)
                                count++;
                        bo=new BufferedOutputStream(new FileOutputStream("E:\\绝望主妇\\1\\2.rmvb",true));
                        bo.write(arr,0,num);
                        bo.close();
                }
作者: 25343215    时间: 2013-11-30 19:10
本帖最后由 25343215 于 2013-11-30 19:14 编辑

楼主for循环的第一行,需要为int cm赋予初始值的。
可以改为int cm=0;
成员变量和局部变量的区别
        (1)作用域
                成员变量:针对整个类有效。
                局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
        (2)存储位置
                成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
                局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
                                  当方法调用完,或者语句结束后,就自动释放。
        (3)初始值
                成员变量:有默认初始值。
                局部变量:没有默认初始值,使用前必须赋值。



作者: 肖川    时间: 2013-11-30 19:32
cm没有初始化好不好?
作者: hurryup    时间: 2013-11-30 19:37
for(int cm;(num=bi.read(arr))!=-1;cm++)
cm=?
没赋值就是没初始化




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