我已经使用C++ SDL几天了,我遇到了一个有趣的问题。
SDL_Event event1;
while(SDL_WaitEvent(&event1))
{
for(size_t i = 0; i < MainMenuOptions.size();i++)
{
if(event1.button.x > MainMenuOptions.at(i).GetX() && event1.button.x < (MainMenuOptions.at(i).GetX() + MainMenuOptions.at(i).GetWidth())
&& event1.button.y > MainMenuOptions.at(i).GetY() && event1.button.y < (MainMenuOptions.at(i).GetY() + MainMenuOptions.at(i).GetHeight()))
{
break;
}
}
}当我在for循环中使用break时,它会中断for循环,而不是while循环。我如何在不使用goto语句的情况下中断while循环呢?(我听说goto语句是糟糕的编程)
发布于 2012-08-20 16:38:09
不需要额外变量和goto的解决方案
while(SDL_WaitEvent(&event1))
{
size_t i;
for(i = 0; i < MainMenuOptions.size();i++)
{
if(/* ... */)
{
break;
}
}
if (i < MainMenuOptions.size())
break;
}https://stackoverflow.com/questions/12034241
复制相似问题