IF与SWITCH

今晚刚刚看了一点儿《大话设计模式》这本书,看到它示例的第一个程序,好像有点理解IF与SWITCH的区别了。大致的思考了总结出来。

IF适用于每个条件都必须判断,就是IF语句中的判断是不同类型的,匹配的东西是非互斥的
而SWITCH中的判断是同类型的,匹配的东西是互斥的
 
比如判断一个对象是飞机还是坦克,还是战舰,这个对象如果是飞机就不可能是坦克,不可能是战舰,互斥的。
所以这个判断用SWITCH比较妥当:
Carrier c = new Carrier();
switch(c.getType()) {
     case AIRPLANE:
     case TANK:
     case BATTLESHIP:
}
这样,一旦作出判断,其它的判断都会失效,就不再判断了。
 
IF的适用情况,则是非互斥的判断,必须每一个if/else if都判断一次。
比如对用户输入的判断,判断是否为空,判断是否过长,判断是否过短。
 
结合SWITCH语句,举一个例子,总体上来说明下,SWITCH和IF的区别。
UserInput userInput = new UserInput();
switch(userInput.getType()) {
    case EMAIL_ADDRESS:
        String content = userInput.toString();
        if (content == "") {
            ......
        } else if (content.length < 5) {
            ......
        } else if (content.length > 10) {
            ......
        }
        break;
    case QQ_NUMBER:
        break;
    case NORMAL_USERNAME:
        break;
}

粗浅理解,各位看官看看就好,不对的地方还请多多指教。

原文地址:https://www.cnblogs.com/kross/p/3190411.html