黑马程序员技术交流社区

标题: 黑马程序员-JAVA基础视频之switch语句 [打印本页]

作者: 学习者    时间: 2013-9-21 23:36
标题: 黑马程序员-JAVA基础视频之switch语句
本帖最后由 学习者 于 2013-9-22 01:13 编辑
  1. ---------------------- <a target="blank">ASP.Net+Android+IO开发S</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------

复制代码
switch 语句是多路分支语句,基本语法如下:
    switch(exper)
    {
        case value1;
            执行语句;
            break;
         case value2;
            执行语句;
            break;
        .......
        default:
            执行语句;
            break;
    }
一、在switch(exper)语句中exper表达式的类型只能是byte,short,int和char这四种类型。
     如:
     double a = 13.6;
     switch(a)       //编译出错,类型不匹配。
        {
             ..........
        }

二、case(value)语句中value为常量,各个case语句中的value表达式的值不同。
    如:
      int a = 13;b = 12;
    switch(a)       //编译出错,类型不匹配。
    {
        case 1:                                        //合法
            System.out.println("1");
            break;
          case b:                                     //编译出错,y不是常量              
            System.out.println("b");
            break;
         case 1:                                     //编译出错,不允许出现重复的case表达式
            System.out.println("1");
            break;
    }
三、在switch语句中最多只能有一个default语句,且是可选的,当switch表达式的值不与任何case语句匹配时,程序执行default语句,如果没有default语句,程序直接跳出switch语句。default语句可以放在switch语句中的任何位置。

四、如果switch语句表达式与某个case表达式匹配,或者与default匹配,就从这个case语句或default语句开始执行,如遇break语句出,否则一次执行后续case语句,不再检查case表达式的值。
    如:
     int a =5;
     switch(a)
          {
               default:
                    System.out.println("nono");
               case 1:
                    System.out.println("a");
                    //break;
               case 2:
                    System.out.println("b");
                    //break;
               case 3:
                    System.out.println("c");
                    break;
               case 4:
                    System.out.println("d");
      }
      打印结果为: nono
                          a
                          b
                          c
  1. ---------------------- <a target="blank">ASP.Net+Android+IOS开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------

  2. 详细请查看:<a  target="blank">http://edu.csdn.net</a>
复制代码

作者: 许庭洲    时间: 2013-9-24 09:44
值得学习ing!
作者: 黑色海    时间: 2013-9-24 15:58
你说的exper,并不限定具体类型,只要能让case语句块中抓取到对应的值就行。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2