Java流程控制—switch-case的练习

/*
案例:使用switch-case实现:对学生成绩大于60分的,输出“合格”。低于60分,输出“不合格”。
*/
class SwitchCaseTest1{
	public static void main(String[] args) {
		//定义一个学生成绩的变量
		int score = 78;

		//根据需求,进行分支

		//方式1:
		/*switch(score){
			case 0:
			     System.out.println("不及格");
			     break;
			case 1:
			     System.out.println("不及格");
			     break;
			//.....

			case 100:
			     System.out.println("及格");
			     break;
			default:
			     System.out.println("成绩输入有误");
			     break;
		}
        */

		//方式2:
        switch(score / 10){
			case 0:
			     System.out.println("不及格");
			     break;
			case 1:
			     System.out.println("不及格");
			     break;
			case 2:
			     System.out.println("不及格");
			     break;
			case 3:
			     System.out.println("不及格");
			     break;
			case 4:
			     System.out.println("不及格");
			     break;
			case 5:
			     System.out.println("不及格");
			     break;
			case 6:
			     System.out.println("及格");
			     break;
			case 7:
			     System.out.println("及格");
			     break;
			case 8:
			     System.out.println("及格");
			     break;
			case 9:
			     System.out.println("及格");
			     break;
			case 10:
			     System.out.println("及格");
			     break;
			default:
			     System.out.println("成绩输入有误");
			     break;
        }

		//方式2另一种写法:体会case穿透
		 switch(score / 10){
			case 0:
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			     System.out.println("不及格");
			     break;
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			default:
			     System.out.println("成绩输入有误");
			     break;
        }

		//方式3:不是很严谨,如果超过分数区间,则结果是不对的
		switch (score / 60){
		case 0:
			System.out.println("不及格");
		case 1:
			System.out.println("及格");
		default:
		    System.out.println("成绩输入有误");
			break;
		
		}
	}
}

运行结果如下:

/*
案例:编写程序:从键盘上输入2023年的“month”和“day”,要求通过程序输出输入的日期为2023年的第几天。

*/
import java.util.Scanner;
class SwitchCaseTest2{
	public static void main(String[] args){
		//1、使用Scanner,从键盘获取2023年的month、day
        Scanner input = new Scanner(System.in);

		System.out.println("请输入2023年的月份:");
		int month = input.nextInt();//阻塞式方法

		System.out.println("请输入2023年的天:");
		int day = input.nextInt();


		//假设用户输入的数据是合法的。后期我们在开发中,使用正则表达式进行校验。

		//2、使用switch-case实现分支结构
        int sumDays = 0;//记录总天数
		//方式1:不推荐。存在数据的冗余
		/*
		switch(month){
			case 1:
				sumDays = day;
			    break;
			case 2:
				sumDays = 31 + day;
			    break;
			case 3:
                sumDays = 31 + 28 + day;
			    break;
		    //.....
			case 12;
			    sumDays = 31 + 28 +...+ 30 + day;
				break;
		}
		*/
        
		//方式2:
		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; //28:二月份的总天数
		case 2:
			sumDays += 31; //31:一月份的总天数
	    case 1:
			sumDays += day;
		    //break;
		}
		

 运行结果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值