Java基础之switch分支语句

switch分支语句

​ switch语句也称为分支语句,其和if语句有点类似,都是用来判断值是否相等,但switch默认只支持byte、short、int、char这四种类型的比较,JDK8中也允许String类型的变量做对比。

语法:

switch (表达式) {	  //表达式可以为byte、short、int、char,JDK5加入枚举,JDK7加入String
	case1:			//分支入口
		语句体1;
		break;
	case2:			//分支入口
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}

//后续语句

格式说明:

在这里插入图片描述

执行流程:
在这里插入图片描述

基础案例:

​ 从键盘录入mode值,其值为0 1 2 3中任意一个,然后输出相应字符串

package com.briup.chap03;

import java.util.Scanner;

public class Test023_SwitchBasic {
	//从键盘录入mode值,其值为0 1 2 3中任意一个,然后输出相应字符串
	public static void main(String[] args) {
	    Scanner sc = new Scanner(System.in);
	    System.out.println("input a mode(0 1 2 3): ");
	    int mode = sc.nextInt();

	    switch(mode){
	        case 0:
	            System.out.println("默认模式开启");
	            //注意讲解break用法:结束switch语句
	            //break;
	        case 1:
	            System.out.println("1模式开启");
	            break;
	        case 2:
	            System.out.println("2模式开启");
	            break;
	        case 3:
	            System.out.println("3模式开启");
	            break;
	        default:
	            System.out.println("无效录入");
	            //break;
	    }
        
        System.out.println("out of switch!");
	}
}

扩展案例:

​ 从键盘录入一个年份和月份,然后输出该月份的天数

package com.briup.chap03;

import java.util.Scanner;

public class Test023_Extend {
	public static void main(String[] args) {
	    Scanner sc = new Scanner(System.in);
	    System.out.println("请录入年份和月份: ");
	    int year = sc.nextInt();
	    int month = sc.nextInt();

	    switch(month) {
	        case 1:
	        case 3:
	        case 5:
	        case 7:
	        case 8:
	        case 10:
	        case 12:
	            System.out.println("31天");
	            break;
	        case 4:
	        case 6:
	        case 9:
	        case 11:
	            System.out.println("30天");
	            break;
	        case 2:
	            //闰年判断
                if((year % 400 == 0) ||
                        (year % 4 == 0 && year % 100 != 0)) {
                    System.out.println("29天");
                }else {
                    System.out.println("28天");
                }
	            break;
	        default:
	            System.out.println("录入月份有误!");
	            break;
	    }
        
        System.out.println("out of switch!");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值