[英]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.