使用if,else if,else重写java中的switch语句

使用if,else if,else重写java中的switch语句,java,eclipse,switch-statement,Java,Eclipse,Switch Statement,我正在探索另一种写这篇文章的方法,而不是用switch-case语句。这基本上控制使用左键和右键从左向右移动对象,反之亦然。我试图用if,else-if语句编写它,但语法错误很少 public void keyPressed(KeyEvent k) { int key = k.getKeyCode(); switch (key) { case KeyEvent.VK_LEFT:

我正在探索另一种写这篇文章的方法,而不是用switch-case语句。这基本上控制使用左键和右键从左向右移动对象,反之亦然。我试图用if,else-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; 
            }  
}
按下公共无效键(KeyEvent k) { int key=k.getKeyCode(); 开关(钥匙) { case KeyEvent.VK_左: if(basket.getX()>0) { 篮子移动(-BM,0); } 打破 case KeyEvent.VK_RIGHT: if(basket.getX()+BW替代方法:

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); 
      } 
    }  
}
public void键按下(KeyEvent k){
if(k.getKeyCode()==KeyEvent.VK_左){
如果(basket.getX()>0){
篮子移动(-BM,0);
} 
}
if(k.getKeyCode()==KeyEvent.VK_RIGHT){
如果(basket.getX()+BW
总有一种方法可以最大限度地最小化代码,但会降低代码的可读性

为了可读性,我个人更喜欢在可能的情况下使用
switch
语句或
if-else


解决方案
布尔键lefttrue=false;
if((keyLeftTrue=(k.getKeyCode()==KeyEvent.VK_LEFT))&&basket.getX()>0)
||(k.getKeyCode()==KeyEvent.VK_RIGHT&&(basket.getX()+BW
如果
否则如果
否则
是的,只需检查
键==
每个可能性。这个问题背后的目的是什么?关于
开关
有什么你不喜欢的吗?@Riley Carney这就是我想写的,但没有成功。获取语法错误当你说
if(key==KeyEvent.VK_LEFT)
它会给你一个错误?@Riley Carney是的,这就是我的问题所在。上面的解决方案是这样写的:if(k.getKeyCode()==KeyEvent.VK_LEFT)谢谢!谢谢,这就是我要找的。当我试图以这种方式编写时,出现了一些语法错误。这是我学java的第一年。还是个傻瓜。谢谢你的代码运行得非常好。在发表这篇文章之前,我无法让它工作。谢谢
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)
}