今天在我編寫代碼時,我遇到了一些我並不期望以這種方式發生的事情。下面只是示例代碼。混淆while和for循環的變量作用域(C編程)
的代碼1
while(true)
{
int i = 1;
printf("This is %d\n" , i);
++i;
if(i == 10)
break;
}
的代碼2
for(int i = 1 ; ; i++)
{
printf("This is %d\n" , i);
if(i == 10)
break;
}
的問題:
1)的第一個代碼將導致而後者無限循環不是。
2.)我不明白,裏面有一個標準的提及變量聲明while循環可以通過while循環內的任何語句訪問,但爲什麼if()
無法訪問變量i的值,而後者可以訪問??
謝謝你花時間閱讀我的問題
對不起,我忘了剛纔 – caramel1995
都能跟得上它縮進的代碼,我已經嘗試使用C語言和PHP都產生相同的結果 – caramel1995