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

© 滔哥 黑马帝   /  2014-8-14 15:59  /  9523 人查看  /  47 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文


现在我们想要一个程序,输入一个1~7之间的数字,然后将其转换为星期几的形式并用英文输出。我们用if...else if就可以做到这件事情,比如:
  1. if ( week == 1 )
  2.     System.out.println(“Monday”);
  3. else if ( week == 2 )
  4.     System.out.println(“Tuesday”);
  5. else if ( week == 3 )
  6.     System.out.println(“Wednesday”);
  7. else if...
复制代码

哎呀,看到上面这一堆代码就快要崩溃啦!那么,有没有更简单的方法呢?那就是我们要讲到的switch语句。switch语句的格式如下:
  1. switch ( 表达式 )
  2. {
  3.     case 值1 : 语句1;break;
  4.     case 值2 : 语句2;break;
  5.     ...
  6.     default : 语句;
  7. }
复制代码

switch语句会先计算括号中表达式的值,然后将这个结果值与下面的case语句后的值进行比较,如果相同的话,就执行紧跟着它的语句块,然后利用break跳出这个switch。如果这个结果值在所有的case语句中都找不到相同的值,那么就执行default后面的语句块。
那么,如果在case语句后没有break语句会发生什么呢?它就会一直向下执行,直到遇见break或者将整个switch执行完毕。所以,一个不小心就会把所有的语句都执行一遍哦!
这节课只是简单介绍一下switch语句,下节课我们就要自己动手写一下,完成输出星期几的那个小程序。



47 个回复

正序浏览
多谢分享
回复 使用道具 举报
有用,总结的很好很容易理解
回复 使用道具 举报
newu 黑马帝 2016-9-9 09:02:08
46#
很好 ,很给力
回复 使用道具 举报
如果有一整套的就好了
回复 使用道具 举报
恩,学过这里,点进来就是为了增加人家.给楼主点赞
回复 使用道具 举报
ji ben shang hen shao yong dao le
回复 使用道具 举报
赞一个~!
回复 使用道具 举报
不错,赞一个
回复 使用道具 举报
lby369 中级黑马 2014-12-29 23:13:08
40#
本来以为switch语句就那几个模式,应该在工作中用到的时候不多,看了这个,其实发现这个语句还是很实用的。
回复 使用道具 举报
不错!赞!
回复 使用道具 举报
:(没有看到多线
回复 使用道具 举报
class Switch
{
        public static void main(String[] args)
        {
                //需求1:根据用户的给定的数值,显示该数值对应的星期。如:2,星期二。
                int week = 9;
                switch(week)
                {
                        case 1:
                                System.out.println(week+"对应的是星期一");
                                break;
                        case 2:
                                System.out.println(week+"对应的是星期二");
                                break;
                        case 3:
                                System.out.println(week+"对应的是星期三");
                                break;
                        case 4:
                                System.out.println(week+"对应的是星期四");
                                break;
                        case 5:
                                System.out.println(week+"对应的是星期五");
                                break;
                        case 6:
                                System.out.println(week+"对应的是星期六");
                                break;
                        case 7:
                                System.out.println(week+"对应的是星期日");
                                break;
                        default:
                                System.out.println(week+"没有对应的星期");
                                break;       
                }
        }     
}

回复 使用道具 举报
Ogre 中级黑马 2014-12-18 23:44:10
36#
之前我才看到9,怎么就20了?
回复 使用道具 举报
红楼 中级黑马 2014-12-18 19:20:13
35#
看见了switch 就想到了 default可以在最前也可以现在最后,default后的break也可以不写,
回复 使用道具 举报
if 和switch
回复 使用道具 举报
这个可以替代查表法呀!
回复 使用道具 举报
哈哈 回帖  混个脸熟
回复 使用道具 举报
滔哥辛苦  
回复 使用道具 举报
不看都忘了
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马