A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海狮 中级黑马   /  2015-10-19 23:46  /  530 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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,效率相对高点

11 个回复

倒序浏览
不错不错
回复 使用道具 举报
switch语句选择的类型还有枚举和字符串,用switch语句的都可以转换为if,但用if的不一定能转换为switch
回复 使用道具 举报
奔跑的小红帽 发表于 2015-10-20 00:21
switch语句选择的类型还有枚举和字符串,用switch语句的都可以转换为if,但用if的不一定能转换为switch ...

枚举本质类型还是int吧?
字符串可以吗?求举例,没见过
回复 使用道具 举报
顶一个~态度还是不错的
回复 使用道具 举报
海狮 发表于 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:42
7#
zhichi  zhichi
回复 使用道具 举报
海狮 中级黑马 2015-10-20 14:49:32
8#
奔跑的小红帽 发表于 2015-10-20 13:32
class Demo6_Switch {

        public static void main(String[] args) {

测试通过,学习了~
回复 使用道具 举报
总结的蛮到位!
回复 使用道具 举报
好贴 顶了!
回复 使用道具 举报
ppaapc 中级黑马 2015-10-22 21:52:57
11#
楼主加油
回复 使用道具 举报
感谢分享~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马