为什么变量在 case 语句中不是局部的?
2022-09-05 00:37:09
我最近向一个Android Java应用程序添加了另一个菜单项,并且惊讶地发现Eclipse说上一个案例中的变量:break不是本地的(所以我只是添加了一个后缀来获取)。
我有点困惑,因为在我的脑海中,如果选择了第二个选项,第1组情况:break根本不会被执行。有人可以解释我错误的想法吗?
case R.id.menuDebugMode:
debugMode = !debugMode;
if (debugMode){
Toast.makeText(mainActivity.this, "Debug Mode on - NOT TO BE USED WHILST DRIVING", Toast.LENGTH_LONG).show();
} else {
tvDebug.setText("");
tvInfo.setText("");
}
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("debugMode", debugMode);
editor.commit();
break;
case R.id.menuSpeedMode:
speedSignMode = !speedSignMode;
if (speedSignMode){
Toast.makeText(mainActivity.this, "SpeedSign Mode in use", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(mainActivity.this, "MapSpeed Mode in use", Toast.LENGTH_LONG).show();
}
SharedPreferences settings2 = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor2 = settings2.edit();
editor2.putBoolean("speedSignMode", speedSignMode);
editor2.commit();
break;`