在循环中声明变量的内容有什么问题?

时间:2017-04-22 09:58:08

标签: java

int a;
while ((a=Integer.parseInt(reader.nextLine())) != -1) {
    sum.addNumber(a);
}
System.out.println("sum: "+sum.sum());

似乎没错,但是

while ((int a=Integer.parseInt(reader.nextLine())) != -1) {
        sum.addNumber(a);
    }
System.out.println("sum: "+sum.sum());

似乎错了。

这是什么原因?

2 个答案:

答案 0 :(得分:2)

因为你只能在while循环的括号内写表达式,并且在语义上它是有意义的,假设你在while()中声明变量,所以在每次迭代时它会创建一个新的局部变量而你不能更多地声明局部变量不止一次。

答案 1 :(得分:0)

第二个已经出现语法错误。与 For 循环不同,您无法在 While 循环中声明变量。