我正在探索另一种写这种方式而不是switch case语句。这基本上控制使用左右键将对象从左向右移动,反之亦然。我尝试用if编写它,否则if语句但语法错误很少。
public void keyPressed(KeyEvent k)
{
int key = k.getKeyCode();
switch (key)
{
case KeyEvent.VK_LEFT:
if (basket.getX() > 0)
{
basket.move(-BM, 0);
}
break;
case KeyEvent.VK_RIGHT:
if (basket.getX() + BW < AW)
{
basket.move(BM, 0);
}
break;
}
}
答案 0 :(得分:1)
替代方式:
public void keyPressed(KeyEvent k) {
if(k.getKeyCode() == KeyEvent.VK_LEFT) {
if (basket.getX() > 0) {
basket.move(-BM, 0);
}
}
if(k.getKeyCode() == KeyEvent.VK_RIGHT) {
if (basket.getX() + BW < AW) {
basket.move(BM, 0);
}
}
}
答案 1 :(得分:1)
总有一种方法可以最大限度地减少,但是你会失去代码的可读性。
为了便于阅读,我个人更喜欢使用switch
语句或if-else
。
boolean keyLeftTrue = false;
if ((keyLeftTrue=(k.getKeyCode() == KeyEvent.VK_LEFT)) && basket.getX() > 0)
|| (k.getKeyCode() == KeyEvent.VK_RIGHT && (basket.getX() + BW < AW))){
basket.move((keyLeftTrue?-BM:BM), 0)
}