2012-05-22 127 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循环内部的原因。