sum cannot be resolved to a variable错误

来源:4-9 Java循环语句之 for

fsnh

2016-01-11 15:54

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回答

  • 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:02:05

    共 1 条回复 >

  • 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()内声明

    早饭荷包蛋 回复fsnh

    这个知识的话,是我学的C语言的基础来的,这里的话我不知道在哪,积分不重要,反正这个东西不值钱,主要的是互相帮助

    2016-01-11 17:37:26

    共 4 条回复 >

  • 慕虎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;
    }
    }

    这样就行了

    fsnh

    我就是故意试试的,结果错误,所以才问问大家

    2016-01-11 16:01:01

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题