2014-09-29 25 views
-6

由於某種原因,switch語句不適用於所有情況。它只適用於第二和第四種情況。不管它是哪個鍵,我都換了它們,只有第二和第四個實際移動座標。開關語句不通過所有情況

我不正確地做這個switch語句嗎?

@Override 
public void keyPressed(KeyEvent e) { 
    int code = e.getKeyCode(); 
    switch(code) { 
     case KeyEvent.VK_DOWN: 
      y+=15; 
     case KeyEvent.VK_UP: 
      y-=15; 
     case KeyEvent.VK_RIGHT: 
      x+=15; 
     case KeyEvent.VK_LEFT: 
      x-=15; 
    } 
    repaint(); 
} 
+8

破......... .. – 2014-09-29 13:31:34

+2

首先你應該學習java,這不是一個成熟的問題:( – Muhammad 2014-09-29 13:34:23

+0

我看到pe ople試圖從已接受的答案中獲得一些回購,而不是告訴提問者這不是問這個問題的地方。 – 2014-09-29 13:35:32

回答

6

您必須添加一個「break;」每種情況下的聲明!

編輯您的代碼如下:

switch(code) { 
     case KeyEvent.VK_DOWN: 
      y+=15; 
      break; 
     case KeyEvent.VK_UP: 
      y-=15; 
      break; 
     case KeyEvent.VK_RIGHT: 
      x+=15; 
      break; 
     case KeyEvent.VK_LEFT: 
      x-=15; 
      break; 
    } 
+0

@爸爸:在職業環境中使用可能不是一個好詞。 – 2014-09-29 13:35:30

+1

@爸爸,我們都做錯誤,這是你如何學習:) – Alboz 2014-09-29 13:35:51

+1

@Alboz是的,你現在也做了! – 2014-09-29 13:40:24

0

使用本:

public void keyPressed(KeyEvent e) 
    { 
     int code = e.getKeyCode(); 
     switch(code) 
     { 
      case KeyEvent.VK_DOWN: 
       y+=15; 
       break; 
      case KeyEvent.VK_UP: 
       y-=15; 
       break; 
      case KeyEvent.VK_RIGHT: 
       x+=15; 
       break; 
      case KeyEvent.VK_LEFT: 
       x-=15; 
       break; 
     } 
     repaint(); 
    } 

編輯: 瞭解更多信息 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html