2012-05-22 126 views
0

我正在研究一個簡單的程序來測試帶有標誌的while循環。爲什麼while循環從未執行?

但是我不確定爲什麼我的程序甚至沒有進入while循環出於某些原因,請原諒我,如果我犯了簡單的錯誤。

主要

int main() 
{ 
    int xflag=0; 
    int n=0; 

while (xflag==1) 
{ 
    if (n == 10) 
    { 

     cout<<"exiting loop"<<endl; 
     xflag = 1; 
    } 

    else 
    { 
     cout << n << endl; 
     ++n; 
     xflag = 0; 
    } 

} 

cout<<"hey"<<endl; 

return 0; 
} 

輸出

hey 
+0

你可能是指'while(xflag == 0)' – WeaselFox

+0

不,他可能是想做'xflag == 1'。你看到他在循環內部做了'xflag == 0'來打破它。 –

+0

@EitanT - 不,他顯然希望在'xflag == 0'時循環,當n達到10時將其更改爲1.無論如何,這是我的理解 – WeaselFox

回答

1

權。 while循環的主體將執行,如果xflag == 1。但事實並非如此。

既然你設置x = 1退出循環,你需要的是可能改變的條件xflag == 1xflag == 0(或一個SimPy !xflag)。

0

xflag的值是0。因此條件xflag == 1正在返回false。這就是控制不在while循環內部的原因。