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

定义了int=1 for括号里就不能定义int =1 了吗

int sum = 0; // 保存不能被3整除的数之和 int i = 1; for (int i = 1; i<=100; i++) { if (i % 3 != 0) { sum = sum + i; // 累加求和 } } System.out.println("1到100之间不能被3整除的数之和为:" + sum); } } 定义了int=1 for 括号里面 就不能定义 int=1了吗?

提问者:狭路 2016-05-19 12:01

个回答

  • 忆_卿
    2016-05-23 14:58:15

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

    }还可以写成

    int i=1;

    for( ;i<100;i++){

    }

    当你定义了 int  i=1; 然后又在 for(){}循环的括号里写 一个 int i=1;的时候   会报  定义了两个同名变量错误。

    Java变量是有作用域的。如果两个作用域完全不同的变量同名,不会引起冲突。

    我知道你想问什么,假如一个班 有两个小明 那么点名的时候就会冲突 但是如果一班有个小明 二班有一个小明,分开班级点名就不会冲突。


    如果一个函数中(最外层)定义了x,在函数中的另外一处也定义了x,或者说在函数的某个循环中定义了x,就会引起冲突。

    如果在一个函数的一个循环A中定义了x,循环B中也定义了x,只要A,B不是相互包含的,那么也不会有冲突。

  • 灵魂号手
    2016-05-19 13:06:00

    不太明白你的问题,你是想问“如果在for循环外面定义了一个变量  int i =1;

    那么在for循环里面还能不能再定义一个同名变量 int i =1 吗?“

    这种情况是不可以的,在同一类或方法中不能重复定义一个同名变量,想了解更多关于变量的,可以在后面的课程中看一下变量的生存期和作用域。

  • qq_啦啦
    2016-05-19 12:45:51

    两个都是定义并初始化同一个变量i,这不是重复了嘛