黑马程序员技术交流社区

标题: 大家好,谁能帮我看看这个程序哪里错了 [打印本页]

作者: 家庭和顺    时间: 2015-3-1 17:10
标题: 大家好,谁能帮我看看这个程序哪里错了
public class Test1
{
        public static void main(String[] args)
        {
                static int num;
                for(int x=12,x<=1002,x=x+10)
                {
                        num=num+x;       
                }
                System.out.print(num);
        }
}

作者: 大奔    时间: 2015-3-1 17:14
for循环应该用封号而不是逗号
作者: 仰天长啸    时间: 2015-3-1 17:16
mun没有赋值,没法完成初始化,会报错。你随意赋个值只要是int类型就好
作者: ZZGFF    时间: 2015-3-1 17:23
  1. public static void main(String[] args) {
  2.                 //咱main 主函数中不用加成staitc(静态)的。  
  3.                 //给num一个初始值,如果num没有初始值不可以进行运算的
  4.                    int num=0;
  5.                    //这里用分号";"隔开而不是逗号","
  6.            for(int x=12;x<=1002;x=x+10)
  7.            {
  8.                    num=num+x;        
  9.            }
  10.            System.out.print(num);
  11.                
  12.         }
复制代码

作者: alvis2015    时间: 2015-3-1 17:24
  1. public class test
  2. {
  3.         static int num =0;
  4.         public static void main(String[] args)
  5.         {
  6.                //static int num=0;//static不能用于修饰局部变量,
  7.                                                           //因为static修饰的东西属于类,而方法中的定义的变量只能属于本方法。
  8.                 for(int x=12;x<=1002;x=x+10)
  9.                 {
  10.                         num=num+x;        
  11.                 }
  12.                 System.out.print(num);
  13.         }
  14. }
复制代码

static修饰的东西是属于整个类所有,而你在一个方法中定义一个变量,只能在本方法中有效,不能用static修饰。
而且你的代码中,for循环括号内的语句要用“;”隔开,不能用“,”。
作者: 血色@残阳    时间: 2015-3-1 18:04
num必须初始化才能运算
作者: ㏒假™面具    时间: 2015-3-1 22:49
1.局部变量num 不能用static修饰。 2.for循环的 初始化语句,判断条件语句, 条件控制语句 用该用; 隔开.
作者: zfgrinm    时间: 2015-3-2 02:24
1.static是用来修饰成员的,包括成员变量和成员函数,而这里的num是局部变量,不能被static修饰;
2.num为局部变量,而局部变量必须初始化之后才能进行运算;
3.for循环之间使用分号;隔开,而不是逗号,
作者: 复仇的撒旦    时间: 2015-3-2 08:43
num赋初始值,static去掉,for循环用;而不是,
作者: qq563426478    时间: 2015-3-2 08:59
static  不能修饰局部变量      for用;
作者: huangchunwei    时间: 2015-3-2 08:59
都是正解啊。。。
作者: 竹叶君子    时间: 2015-3-2 09:30
static int num;应该改成int num;
作者: Hsidar    时间: 2015-3-2 10:18
for循环的三条语句是用;分隔的
作者: lintuan712    时间: 2015-3-2 10:18
num不能被static修饰;必须初始化才能进行运算;for中表达式必须用;间隔
作者: 硫氢化铁    时间: 2015-3-2 12:06
错误有俩,一是定义num没有初始化值,二是for语句里面用的是;不是,
作者: 我是main    时间: 2015-3-2 15:19
逗号 换分号,num初始化赋值
作者: 2119391569    时间: 2015-3-2 15:36
局部变量没有赋值是不能参与运算的,还有for循环中初始化表达式和循环条件表达式以及循环后操作表达式中间是用分号隔开的,而且静态static不是随意使用的,只有是共性的数据才可以使用!
作者: 小谢357075932    时间: 2015-3-2 15:39
int 前面不该用static,且num没赋值,编译报错
作者: yangruijing    时间: 2015-3-2 21:40
在类中,用static声明的成员变量为静态成员变量,或者叫做类属性、类变量。
  -- 它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时,被显示初始化。
  -- 对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享
所以static int num;应该定义在该类中所有方法的外面。
程序还有一个小错误:就是for(int x=12,x<=1002,x=x+10)中表达式之间用分号(:),而不是逗号(,)
正确程序:
public class test {
        static int num;
        public static void main(String[] args) {
               
        for(int x=12;x<=1002;x=x+10)
        {
                num=num+x;        
        }
        System.out.print(num);
        }

}
作者: Ender亮    时间: 2015-3-2 22:06
好久没看前面,都忘记的差不多了。看来是要多上来看看,楼主问的很好啊

作者: syfsyf1993    时间: 2015-3-2 22:17
1.static是用来修饰成员的,包括成员变量和成员函数,而这里的num是局部变量,不能被static修饰; 2.num为局部变量,而局部变量必须初始化之后才能进行运算; 3.for循环之间使用分号;隔开,而不是逗号,
作者: 奋斗小青年    时间: 2015-3-2 23:05
几个错误点跟楼主解释一下啊
1.main函数本身就是static静态,只要当static静态函数调用函数外的变量时才需要将该变量定义成static,在静态函数内部是不用的。
2.for循环的格式是
for(初始化语句;判断条件;循环内部执行完后操作)
//这里用分号是因为其中每一句都是一个单独语句,程序语句结束标志是用分号的
//如果用逗号,那叫做逗号表达式,逗号表达式执行会最终执行逗号的最后一句
{
        循环执行语句;
}
3.在引用变量时必须对变量进行初始化操作,你可以先定义,后初始化。但是在引用该变量之前必须确保有一个初始化过程。
  1. class Test1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int num = 0;
  6.                 for(int x=12;x<=1002;x=x+10)
  7.                 {
  8.                         num = num + x;        
  9.                 }
  10.                 System.out.print(num);
  11.         }
  12. }
复制代码

作者: 执梦而行    时间: 2015-3-2 23:09
楼上正解




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