2016-02-26 77 views
1

當我點擊WASD我的元素應該朝某個方向走。JAVA - 在默認情況下拋出異常

我用switch case語句處理它。

但是,如果用戶點擊其他密鑰怎麼辦?我將無法獲得新的職位。

我可以在默認情況下拋出一些異常,然後在try {...} catch {...}之後執行嗎?

下面是我的代碼:

private boolean checkPos(String c) { 
    int newPosX, newPosY; 

    switch(c.toUpperCase().charAt(0)){ 
    case 'W': 
     newPosX = oldPosX + 1; 
     break; 
    case 'A': 
     newPosY = oldPosY() - 1; 
     break; 
    case 'S': 
     newPosX = oldPosX() - 1; 
     break; 
    case 'D': 
     newPosY = oldPosY() + 1; 
     break; 
    default: 
     //throw exception??? 
     return false; 
    } 

    System.out.println("input:" + c.toUpperCase().charAt(0)); 
    System.out.println("OLD POSITION: (" + oldPosY() + ";" + oldPosX() + ")"); 
    System.out.println("NEW POSITION: (" + newPosY + ";" + newPosX + ")"); 
} 

有人可以給我一個忙嗎?

+1

你以前使用過這類導航的遊戲用戶,什麼都這些程序做?他們是否拋出異常? –

+0

你可能什麼都不做。這意味着除了W,A,S或D以外的任何其他鍵都不會調整位置。 –

+0

什麼都不做?! – aribeiro

回答

2

拋出一個異常似乎是一個非常糟糕的方式來做到這一點,因爲它們是昂貴的,應該只在需要時才使用,而應該設置默認情況下告訴用戶他們的輸入是無效的,並循環回去問爲新的輸入。大概是不需要

default: System.out.println("Invalid data"); 
requestPos(); // which i presume will bring you back to checkpos with more data 
break; 

打印出的無效部分,但是這取決於你的遊戲它可能是不錯的通知

相關問題