回 帖 发 新 帖 刷新版面

主题:初学者请教问题

bool quit=false;
这个语句是什么意思


后边大都跟一个循环while(!quit){}

这个bool类型的quit是做什么的?

回复列表 (共2个回复)

沙发

bool quit=false;定义逻辑型变量并初始化为假
while(!quit){} 若条件为真则执行while语句

板凳


quit用来代表程序是否应该退出。

while(!quit)的循环,如果quit等于0的时候,循环就不会结束。

这种程序通常出现在带图形的程序中,例如OpenGL程序,SDL程序等等。

这一类的程序会显示一个窗口,然后接受鼠标和键盘的输入。运行程序后,如果你点击关闭窗口,程序就会处理这一点,使得quit不等于0,这样就会跳出while循环。程序也就顺利结束。

如果没有这个quit变量是否判断程序是否应该结束,没有while循环来保持程序一直运行,那么这一类带窗口的程序就会迅速退出,也就达不到显示图形的目的了。因此这样的while循环在图形程序中很重要(平时常见的Windows程序,比如QQ,Word也是这种设计。
Windows程序中比较典型的这种代码是:
while(GetMessage(&msg,NULL,0,0)){
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
窗口如果不关闭,GetMessage就不退出,达到总是处于循环中,窗口不关闭(程序也不自动关闭)的作用。

如果是SDL程序,OpenGL这一类的跨平台环境下,典型的写法就变成了:
while(!quit){
    // to do: handle input
}

希望能够解决楼主的困惑。

我来回复

您尚未登录,请登录后再回复。点此登录或注册