问答详情
源自:4-9 Java循环语句之 for

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


提问者:fsnh 2016-01-11 15:54

个回答

  • yes居然被占用
    2016-01-11 15:59:49
    已采纳

    首先你这个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);

    }


    }


  • fsnh
    2016-01-11 16:03:49

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

  • 早饭荷包蛋
    2016-01-11 16:02:44

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

  • 慕虎2321717
    2016-01-11 15:59:01

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

  • Caballarii
    2016-01-11 15:58:59

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

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

    这样就行了