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;

}

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

你可能感兴趣的:(switch)