以下while循環不會終止。這是因爲變量x
正在while循環內重新聲明。但我不明白爲什麼在第二次迭代之後,語句x<10
和y=x
考慮在外部作用域中定義的x,而不是在以下語句中在塊作用域中定義的x
。 這是因爲一旦第一次迭代結束,塊範圍中定義的x
被銷燬,循環開始執行新鮮事?C++混淆for循環中重新聲明的變量範圍
#include<iostream>
int main() {
int x = 0, y;
while(x <10){
y = x;
std::cout<<"y is :"<< y <<std::endl;
int x = y + 1;
std::cout<<"x is :"<< x <<std::endl;
}
std::cout<<"While loop is over"<<std::endl;
}