我正在编写一个程序,它使用带有许多按钮的控制器来执行某些任务。基本上,当按下按钮时,我想要运行特定的代码,并且只运行一次。这就是为什么我有buttonWasPressed
来确保代码只在按下按钮时运行一次,而不是每个循环周期。
while(active)
{
if(button1)
if(!buttonWasPressed)
{
code1();
buttonWasPressed = true;
}
else if(button2)
if(!buttonWasPressed)
{
code2();
buttonWasPressed = true;
}
else if(button3)
if(!buttonWasPressed)
{
code3();
buttonWasPressed = true;
}
.
.
.
else
buttonWasPressed = false;
}
我主要想知道是否有更好的方法来写这个,因为检查和设置buttonWasPressed
会有很多不必要的重复。我想过使用一个switch语句,但那些需要有案例的常量,这个代码没有。我也不能使用数组作为按钮,因此for循环可能不起作用。理想情况下,我希望代码看起来像这样:
while(active)
{
if(button1)
code1()
else if(button2)
code2();
else if(button3)
code3();
.
.
.
}
除了代码每按一次只运行一次,按下。有人有什么建议吗?
答案 0 :(得分:0)
只需等待所有按钮释放,然后再进入下一个循环即可使用。代码现在看起来像这样:
while(active)
{
if(button1)
code1()
else if(button2)
code2();
else if(button3)
code3();
.
.
.
while(!buttonsAreReleased());
}
这可能在其他应用程序中不起作用,因为空的while循环保持不变,但它对我有用。我必须制作检查按钮是否已释放的方法:
boolean buttonsAreReleased()
{
return !(button1 || button2 || ...);
}