黑马程序员技术交流社区

标题: switch语句的笔记 [打印本页]

作者: 海狮    时间: 2015-10-19 23:46
标题: switch语句的笔记
switch语句
格式:
switch(表达式)
{
        case 取值1:
                执行语句;
        break;
        case 取值2:
                执行语句;
        break;
        default:
                执行语句;
        break;
}
switch语句特点:
1、switch语句选择的类型只有四种:byte,short,int,char。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇
到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case
上面,执行顺序也不变。
例一:一个case一种处理方式
class TestDemo
{
        public static void main(String[] args)
        {
                char ch='=';
                switch(ch)
                {
                        case '+':
                                System.out.println("ch为+");
                                break;
                        case '-':
                                System.out.println("ch为-");
                                break;
                        case '*':
                                System.out.println("ch为*");
                                break;
                        case '/':
                                System.out.println("ch为/");
                                break;
                        default:
                                System.out.println("ch不是+-*/");
                                break;
                }
        }
}
结果为
ch不是+-*/
例二:多个case同一种处理方式
class TestDemo
{
        public static void main(String[] args)
        {
                char ch='*';
                switch(ch)
                {
                        case '+':
                        case '-':
                                System.out.println("ch为-或+");
                                break;
                        case '*':
                        case '/':
                                System.out.println("ch为/或*");
                                break;
                        default:
                                System.out.println("ch不是+-*//");
                                break;
                }
        }
}
结果为
ch为/或*

有时候if语句能和switch互换使用,但各有优势,选用时具体问题具体分析
例如对于有几个固定值进行判断,建议使用switch,效率相对高点


作者: 荒岛晴空    时间: 2015-10-19 23:59
不错不错
作者: 奔跑的小红帽    时间: 2015-10-20 00:21
switch语句选择的类型还有枚举和字符串,用switch语句的都可以转换为if,但用if的不一定能转换为switch
作者: 海狮    时间: 2015-10-20 10:09
奔跑的小红帽 发表于 2015-10-20 00:21
switch语句选择的类型还有枚举和字符串,用switch语句的都可以转换为if,但用if的不一定能转换为switch ...

枚举本质类型还是int吧?
字符串可以吗?求举例,没见过
作者: 爨oooo    时间: 2015-10-20 10:12
顶一个~态度还是不错的
作者: 奔跑的小红帽    时间: 2015-10-20 13:32
海狮 发表于 2015-10-20 10:09
枚举本质类型还是int吧?
字符串可以吗?求举例,没见过

class Demo6_Switch {

        public static void main(String[] args) {
                String name="小王";
                        switch(name){
                                case "小张":
                                        System.out.println("我是小张");
                                break;
                                case "小王":
                                        System.out.println("我是小王");
                                break;
                                default:
                                        System.out.println("没有匹配");
                                break;

                }

        }
}
作者: jlq    时间: 2015-10-20 13:36
zhichi  zhichi
作者: 海狮    时间: 2015-10-20 14:49
奔跑的小红帽 发表于 2015-10-20 13:32
class Demo6_Switch {

        public static void main(String[] args) {

测试通过,学习了~
作者: liuyang10908126    时间: 2015-10-22 15:35
总结的蛮到位!
作者: dushine2000    时间: 2015-10-22 18:30
好贴 顶了!
作者: ppaapc    时间: 2015-10-22 21:52
楼主加油
作者: 如梦丶似幻    时间: 2015-10-22 22:45
感谢分享~~~




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