我最近添加了另一個菜單項到一個android java應用程序,很驚訝,Eclipse說,從前面的情況變量:break不是本地的(所以我剛剛添加了一個後綴通過)。爲什麼變量在case語句中不是局部的?
我有點困惑,因爲在我的腦海裏,第一套案例:如果第二個選項被選中,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;`
感謝所有快速和有用的答案 - 我將TME標記爲可接受的答案(因爲它具有清晰的原因:)但所有答案都是好的答案。我通常是一個如果然後elseif類型的程序員,所以這就是爲什麼我被抓到這裏:) – SimpleSi 2010-11-05 09:29:52