你膽敢不加break試試?

我們經常在實際開發中會用到一些轉換類,比如在金融界中,我們需要將1轉換爲“壹”,2轉換成“貳”。還有類似這樣的需求,食堂在一週內每天的菜單都是不一樣的,週一爲魚香肉絲+雞腿,週二爲爆炒土豆絲+鮁魚,週三爲西紅柿炒雞蛋+牛肉片等等,我們可以用代碼來模擬一下金融項目的需求:

//java實現將阿拉伯數字轉換成中國式數字
	public static void testCastNum(){
		int num = 2;
		String chinaNum = "";
		switch (num) {
		case 1:
			chinaNum = "壹";
		case 2:
			chinaNum = "貳";
		case 3:
			chinaNum = "叄";
		case 4:
			chinaNum = "肆";
		case 5:
			chinaNum = "伍";
		case 6:
			chinaNum = "陸";
		case 7:
			chinaNum = "柒";
		case 8:
			chinaNum = "捌";
		case 9:
			chinaNum = "玖";
		}
		System.out.println(chinaNum);
	}

這是一個簡單的不能在簡單的案例,大家一看就明白,那我們運行一下,發現結果輸出的是“玖”,爲什麼?

我們回來在看看程序,哦,原來是case後面忘記加break了,程序從case2執行完之後繼續執行,chinaNum的值從“貳”、“叄”、“肆”一直到“玖”才結束,因爲在switch中,自始至終都未發現break,所以就一直執行。

有人可能會質疑,這樣的小兒科我是不可能煩的,錯誤太簡單了,我只能說,你參與過的並沒有太複雜,在大點的項目中蹲過坑、打過仗的兄弟們都知道,switch中經常會遇到一堆case語句,又和別的業務嵌套在一起,你說落一個break正常不,最正常不過了。

那麼我們應該如何防止這樣的看似低級小兒科的實則又常犯的錯誤呢?

修改編輯器的警告級別,比我在myeclipse或者eclipse中,一次點擊windows–》preferences–》java–》Compiler–》Errors/Warnings–》Potential programming problems–》”’switch’ case fall-througn”,
在這裏插入圖片描述
將後面的錯誤級別修改爲Error,你膽敢在case後面不加break試試?我就直接給你報紅色叉號,別說運行了,編譯都不讓你通過!!!
在這裏插入圖片描述
當然,你也可以改其他的錯誤級別,自己改的試試哦~

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章