Dmitriy
Dmitriy

Reputation: 97

Rewrite switch statements in java using if, else if, else

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

Answers (2)

Yassin Hajaj
Yassin Hajaj

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.


Solution

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

Shiladittya Chakraborty
Shiladittya Chakraborty

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

Related Questions