Reputation: 97
I'm exploring another way of writing this instead of switch case statement. This basically controls to move an object from left to right and vise versa using left and right keys. I'm trying to write it in if,else if statement but having few syntax errors.
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;
}
}
Upvotes: 0
Views: 881
Reputation: 21975
There is always a way to minimize at the maximum but you'll lose in readability of the code.
I would personnaly prefer using a switch
statement or an if-else
when possible for the sake of readability.
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)
}
Upvotes: 1
Reputation: 4408
Alternative way :
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);
}
}
}
Upvotes: 1