Die folgende while-Schleife wird nicht beendet. Dies liegt daran, dass die Variable x
innerhalb der while-Schleife neu deklariert wird. Aber ich verstehe nicht, warum die Anweisungen x<10
und y=x
in der zweiten Iteration das im äußeren Bereich definierte x und nicht den im Blockumfang in der folgenden Anweisung definierten x
berücksichtigen. Ist dies, weil, sobald die erste Iteration endet, die im Block Scope definierte x
zerstört wird und die Schleife beginnt, frisch auszuführen?C++ Verwirrender Bereich der redeclared Variablen in for-Schleife
#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;
}