程序流程控制switch-case结构

结构

switch(表达式){

case 常量1:

语句1;

// break;

case 常量2:

语句2;

// break;

… …

case 常量N:

语句N;

// break;

default:

语句;

// break;

}

说明:

1.根据switch中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句,当调用完执行语句以后,则任然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束。

2.break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构

3.switch结构中的表达式,只能是如下的六种数据类型之一:byte,short,char,int,枚举类型(JDK5.0新增),String类型(JDK7.0新增)

4.case之后只能是声明常量,不能声明范围

5.break关键字是可加可不加的

6.default:相当与if-else结构中的else(default是可加可不加的,而且位置是灵活的)

例题

 ​
 ​
 public class SwitchCase {
     public static void main(String[] args){
 ​
         int number = 2;
         switch(number){
             case 0:
                 System.out.println("zero");
                 break;//如果没有break关键字,继续向下执行
             case 1:
                 System.out.println("one");
                 break;
             case 2:
                 System.out.println("two");
                 break;
             case 3:
                 System.out.println("three");
                 break;
             default:
                 System.out.println("other");
 ​
         }
     }
 }
 ​

 ​
 ​
 public class SwitchCase {
     public static void main(String[] args){
 ​
         String season = "summer";
         switch (season) {
             case "spring":
                 System.out.println("春暖花开");
                 break;
             case "summer":
                 System.out.println("夏日炎炎");
                 break;
             case "autumn":
                 System.out.println("秋高气爽");
                 break;
             case "winter":
                 System.out.println("冬雪皑皑");
                 break;
             default:
                 System.out.println("季节输入有误");
                 break; 
         }
     }
 }
 ​

7.如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并

 ​
 //例题:对学生成绩大于60分的,输出“合格”低于60分的输出“不合格”
 public class SwitchCase {
     public static void main(String[] args){
         int score = 80;
         switch(score/10){
             case 0:
             case 1:
             case 2:
             case 3:
             case 4:
             case 5:
             case 6:
                 System.out.println("不合格");
                 break;
             case 7:
             case 8:
             case 9:
             case 10:
                 System.out.println("合格");        
         }
         //更优解决方案
         int score =80;
         switch(score/60){
             case = 0:
                 System.out.println("不合格");
                 break;
             case = 1:
                 System.out.println("合格");
                 break;
         }
     }
 }
 ​
 ​
 //例题:从键盘上输入2021年的“month”和“day”,要求通过程序输出输入的日期为2021年的第几天
 import java.util.Scanner;
 public class SwitchCase {
     public static void main(String[] args){
     Scanner scan = new Scanner(System.in);
     System.out.println("请输入2021年的月份:");
     int month = scan.nextInt();
     System.out.println("请输入2021年的day:");
     int day = scan.nextInt();
     //定义一个变量来保存总天数
         int sumDays = 0;
         switch(month){
             case 12:
                 sumDays += 30;
             case 11:
                 sumDays += 31;
             case 10:
                 sumDays += 30;
             case 9:
                 sumDays += 31;
             case 8:
                 sumDays += 31;
             case 7:
                 sumDays += 30;
             case 6:
                 sumDays += 31;
             case 5:
                 sumDays += 30;
             case 4:
                 sumDays += 31;
             case 3:
                 sumDays += 28;
             case 2:
                 sumDays += 31;
             case 1:
                 sumDays += day;
                 System.out.println("2021年" + month +"月" + day + "日" + "是当年的第" + sumDays + "天");
         }
     }
 }
 ​
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值