我想了解的for循環通過測試出以下三個實施例的範圍:範圍for循環具有替代變量聲明改變:
實施例1:
int a=15;
for(a=1;a<3;a++) {
cout<<a<<endl;
}
cout<<a<<endl;
這裏控制檯顯示1 2 3.但是,我會認爲它應該顯示1 2 15,因爲通常情況下,for循環內的變量a的範圍似乎仍保留在for循環內。
實施例2:
for (int a=1; a<3; a++) {
cout<<a<<endl;
}
cout<<a<<endl;
在該示例中,編譯器不識別變量a之後的for循環 - 如預期。那麼它如何在例1中被認識到呢?
實施例3:
int a=15;
for(int a=1;a<3;a++) {
cout<<a<<endl;
}
cout<<a<<endl;
在這種情況下,控制檯顯示1 2 15是什麼這和實施例1之間的差異?
非常感謝您的幫助。
謝謝!但是,爲什麼對於示例1,for循環內的'a'的修改會在for循環之外進行? @FCo –
這是因爲循環內部的「a」與循環外部的「a」完全相同。對變量值的任何修改仍然成立。它們是相同的,因爲'for'循環聲明中沒有重新聲明'a'。 – FCo