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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 滔哥 黑马帝   /  2014-8-14 15:59  /  7364 人查看  /  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 个回复

倒序浏览
switch语句用的少  都快忘记了
回复 使用道具 举报
很不错的总结啊                                                               
回复 使用道具 举报
if ( week == 1 )
    System.out.println(“Monday”);
else if ( week == 2 )
    System.out.println(“Tuesday”);
有点地方忘了。请问楼主,
if ( week == 1 )
    System.out.println(“Monday”);break;
这样子后面的语句是不是不管怎样都不会执行了啊
回复 使用道具 举报
滔哥辛苦  必须顶起!
回复 使用道具 举报
一顿一只牛 发表于 2014-8-14 21:12
if ( week == 1 )
    System.out.println(“Monday”);
else if ( week == 2 )

break之后不再循环 continue结束本次循环后 再开始下一次的循环
break还可以用在switch/case中,用来结束条件匹配,道理和在循环中一样
回复 使用道具 举报
很好很强大
回复 使用道具 举报
用的少,巩固一下
回复 使用道具 举报
switch处理情况有限,次数明确的判断来说不错。
回复 使用道具 举报
复习一下switch,练一练
  1. import java.io.BufferedInputStream;
  2. import java.util.Scanner;

  3. public class Operator {

  4.         public static void main(String[] args) {
  5.                
  6.                 System.out.println("请输入一个1~7之间的数字:");
  7.                 Scanner input = new Scanner(new BufferedInputStream(System.in));//键盘录入
  8.                 int num= input.nextInt();//等待键盘录入并接收int型数据
  9.                 String[] strArr = //搞个星期的列表出来,对照的调用,看着舒服点
  10.                         {"","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
  11.                 switch(num) {//传入键盘录入的值
  12.                 case 1:System.out.println(strArr[num]);break;
  13.                 case 2:System.out.println(strArr[num]);break;
  14.                 case 3:System.out.println(strArr[num]);break;
  15.                 case 4:System.out.println(strArr[num]);break;
  16.                 case 5:System.out.println(strArr[num]);break;
  17.                 case 6:System.out.println(strArr[num]);break;
  18.                 case 7:System.out.println(strArr[num]);break;
  19.                 default:System.out.println("您输入的数不在范围内,请重新输入!");
  20.                 }
  21.         }
  22. }
复制代码
回复 使用道具 举报
比较少用这个
回复 使用道具 举报
看看   
回复 使用道具 举报
赞一个!!!
回复 使用道具 举报
liqi 中级黑马 2014-8-18 18:44:31
14#
都快忘了
回复 使用道具 举报
很好 ,很给力     
回复 使用道具 举报
今天学的,再看一边,还是有收获!
回复 使用道具 举报
学好长时间了,还有一些印象!
回复 使用道具 举报
学习了            
回复 使用道具 举报
写的不错,辛苦了
回复 使用道具 举报
最不喜欢Switch了。。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马