为了账号安全,请及时绑定邮箱和手机立即绑定

sum cannot be resolved to a variable错误

public class Demo10409 {

public static void main(String[] args) {

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

if(i%3!=0){

sum=sum+i;

}

}

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

}

最后的输出行如果加上sum就会显示,去掉+sum就没事
sum cannot be resolved to a variable


正在回答

5 回答

首先你这个sum变量在for循环内可以使用,出了这个范围就找不到这个变量了,肯定报错,修改后的代码:

public class CS {


/**

* @param args

*/

public static void main(String[] args) {

int sum = 0;

int i ;

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

if (i % 3 != 0) {

sum = sum + i;

}

}

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

}


}


1 回复 有任何疑惑可以回复我~
#1

fsnh 提问者

谢谢各位的回答和指点
2016-01-11 回复 有任何疑惑可以回复我~

只能采纳一个,没办法了,我倒是想三个都采纳,让帮助过我的大家都有分加

0 回复 有任何疑惑可以回复我~

sum为局部变量,非全局变量。即在for(int sum)中,sum的生命周期是在for以内才有效,如果运行到for以后,也就是for(){}以外的范围,就不在sum的生命周期以内了,要修改的话,在for之前声明int sum;,而不是在for()内声明

0 回复 有任何疑惑可以回复我~
#1

fsnh 提问者

这个知识点在哪一章
2016-01-11 回复 有任何疑惑可以回复我~
#2

东东打小怪兽保护奥特曼 回复 fsnh 提问者

大概是在成员变量那一模块应该 里面会介绍成员变量影响范围
2016-01-11 回复 有任何疑惑可以回复我~
#3

fsnh 提问者 回复 东东打小怪兽保护奥特曼

在中级还是高级?
2016-01-11 回复 有任何疑惑可以回复我~
#4

早饭荷包蛋 回复 fsnh 提问者

这个知识的话,是我学的C语言的基础来的,这里的话我不知道在哪,积分不重要,反正这个东西不值钱,主要的是互相帮助
2016-01-11 回复 有任何疑惑可以回复我~
查看1条回复

你把sum变量申明在for循环外面不就好了

1 回复 有任何疑惑可以回复我~

sum在for循环里定义的,在for循环外取不到,

int sum=0;
for(int i=1;i<=100 ; i++){
if(i%3!=0){
sum=sum+i;
}
}

这样就行了

1 回复 有任何疑惑可以回复我~
#1

fsnh 提问者

我就是故意试试的,结果错误,所以才问问大家
2016-01-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

sum cannot be resolved to a variable错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信