繁体   English   中英

在while循环内而不是在for循环内声明变量的数据类型有什么问题?

[英]What is wrong in declaring data type of variable inside while loop but not inside for loop?

如果我声明变量然后在 while 循环中初始化变量,则没有问题。

int a; 
while((a=someValue)!= -1)`

但是如果我声明变量并在while循环中初始化它,编译时就会出现问题。

while ((int a=someValue) != -1)

这是什么原因? 不过,在 For 循环中声明和初始化变量似乎没问题。

完整代码片段:

正确的

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());

因为你只能在while循环的括号内写一个表达式。 从语义上讲,这是有道理的:假设您在while()声明了一个变量,那么在每次迭代时它都会创建一个新的局部变量,并且您不能多次声明局部变量。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM