以下 while 循环不会终止。x这是因为在 while 循环中重新声明了变量。但我不明白为什么在第二次迭代中,语句x<10并y=x考虑在外部范围中定义的 x 而不是x在以下语句中的块范围中定义的。这是因为一旦第一次迭代结束,x块范围内的定义就被破坏了,循环开始重新执行?
#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;
}