猿问

初学者请教各位大神,为什么这样不对?

以下为代码一部分:

for(int i=1,sum=0;i<=100;i++){

   if(i%3!=0){

       sum+=i;

   }

}

System.out.println("1到100之间不能被3整除的数之和为:"+sum);

问题注释:

我看课程中说,for语句的初始化变量部分可以用“,”隔开同时对两个变量赋初值。但我像上面这么敲就运行错误。但是只要先给sum赋初值,如: int sum=0;for(int i=1;i<=100;i++)..........   这样就可以运行成功。

这是为什么呀,不是说for语句可以同时给两个变量赋初值的吗,我错在哪了呀。。。请教各位大神!!!

错误提示如下:

运行失败

HelloWorld.java:8: error: cannot find symbol
System.out.println("1到100之间不能被3整除的数之和为:"+sum);
                                        ^
 symbol:   variable sum
 location: class HelloWorld
1 error



Morso
浏览 939回答 1
1回答

huangzhong

sum声明在for里面,它的作用范围就仅限于循环体,print已经在循环体外面了,所以找不到这个变量,会发生编译错误
随时随地看视频慕课网APP

相关分类

Java
我要回答