次の while ループは終了しません。これは、変数x
が while ループ内で再宣言されているためです。しかし、2回目以降の反復で、次のステートメントのブロックスコープで定義されたxではなく、外側のスコープで定義されたxx<10
を考慮する理由がわかりません。これは、最初の反復が終了すると、ブロック スコープで定義された が破棄され、ループが新たに実行され始めるためですか?y=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;
}