Java 一组输入的开关盒?
鉴于我有以下期末考试:Java 一组输入的开关盒?,java,switch-statement,Java,Switch Statement,鉴于我有以下期末考试: private static final char CLIPPING_LOWER = 'c'; private static final char CLIPPING_UPPER = 'C'; private static final char RESET_LOWER = 'r'; private static final char RESET_UPPER = 'R'; private static final char LOAD_LOWER = 'l'; private
private static final char CLIPPING_LOWER = 'c';
private static final char CLIPPING_UPPER = 'C';
private static final char RESET_LOWER = 'r';
private static final char RESET_UPPER = 'R';
private static final char LOAD_LOWER = 'l';
private static final char LOAD_UPPER = 'L';
private static final char QUIT_LOWER = 'q';
private static final char QUIT_UPPER = 'Q';
并考虑开关情况:
public void keyPressed(KeyEvent e)
{
char usersChoice = e.getKeyChar(); // get the user's choice
switch(usersChoice)
{
case LOAD_UPPER:
{
userPressedLoad();
break;
}
case LOAD_LOWER:
{
userPressedLoad();
break;
}
case RESET_LOWER:
{
userPressedReset();
break;
}
case RESET_UPPER:
{
userPressedReset();
break;
}
case CLIPPING_LOWER:
{
userPressedClipping();
break;
}
case CLIPPING_UPPER:
{
userPressedClipping();
break;
}
case QUIT_UPPER:
{
userPressedQuit();
break;
}
case QUIT_LOWER:
{
userPressedQuit();
break;
}
default:
break;
}
}
是否可以在一个块中同时为
c
和c
编写一个案例(以及r
和r
等),而不是为c
编写单独的案例和为c
编写另一个案例 将病例分组的一种解决方案
case CLIPPING_LOWER:
case CLIPPING_UPPER: {
userPressedClipping();
break;
}
case LOAD_UPPER:
case LOAD_LOWER:
userPressedLoad();
break;
另一种解决方案是在switch语句中只使用大写字母
char usersChoice = Character.toUpperCase(e.getKeyChar());
case LOAD_UPPER:
userPressedLoad();
break;
是的,比如说:
case LOAD_UPPER: case LOAD_LOWER:
{
userPressedLoad();
break;
}
可以使用usersChoice使用user Character.toLowerCase,这样就不必处理“R”、“C”等