if語句的數據驅動優化(Java版)

舉個栗子,若是我要輸出數字對應的中文描述,我能夠用這種方法來寫:編程

int num=2;

if (num==1){
    System.out.println("一");
}
else if (num==2){
    System.out.println("二");
}
else if (num==3){
    System.out.println("三");
}
else if (num==4){
    System.out.println("四");
}
else if (num==5){
    System.out.println("五");
}else {
    System.out.println("其它");
}

 

可是若是有一百個數字,難道你要寫一百次的if語句麼??因此能夠優化成下面這樣的表驅動:函數

public static String ConvertNumber(int num){
    Map<Integer,String> map=new HashMap<Integer,String>();
    map.put(1,"一");
    map.put(2,"二");
    map.put(3,"三");
    map.put(4,"四");
    map.put(5,"五");
    for (Integer integer:map.keySet()){
        if (integer==num){
            return map.get(integer);
        }
    }
    return "其它";
}

而後在Main函數中直接調用該方法System.out.println(ConvertNumber(num));就能夠啦!優化

顯而易見的是,第二種數據驅動的編程方式更爲簡練,它將數據和邏輯剝離,拓展性好。spa

好比我想添加一個6對應的六,只要在代碼的數據段中添加map.put(6,"六");就能夠了。code

相關文章
相關標籤/搜索