使用if,else if,else重写java中的switch语句
我正在探索另一种写这篇文章的方法,而不是用switch-case语句。这基本上控制使用左键和右键从左向右移动对象,反之亦然。我试图用if,else-if语句编写它,但语法错误很少使用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:
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()+BWpublic 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)
}