本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

Java学习之switch语句及判断月份的案例

发布于2021-03-13 13:42     阅读(571)     评论(0)     点赞(10)     收藏(1)


大家好!我是小崇。希望大家不吝赐教,我们互相学习,共同进步!

我们在使用选择语句时,会遇到需要从多个选项中选择其中一个的情况,这时候,我们就可以使用switch语句了。
switch语句主要实现多分支结构,一般格式如下:

switch (expression){
	case value1;
		statements
		break;
	case value2;
		statements
		break;
	case value3;
		statements
		break;
	.
	.
	.
	case valuen;
		statements
		break;
		[default:
		statements]
}

在上面是示例代码中的expression是一个表达式,expression的值必须是byte类型、short类型、int 类型、char类型 、enum类型、或者String类型。

其中,case子句是用来设定某种情况的,后面的值必须是与表达式值类型相容。程序进入switch结构后,先计算expression的值,然后用该值依次与每个case中的常量(或常量表达式)的值进行比较,如果等于某值,则执行case子句中后面的语句,直到遇到break语句为止。

break语句的功能是退出switch结构。如果在某种情况之下处理结束后就离开switch结构,则必须在该case结构的后面加上break语句。

default语句是可选的,当表达式的值与每个case子句中的值都不匹配时,就执行default后的语句。如果表达式的值与每个case子句中的值都不匹配,且也没有default子句,则该程序不执行任何操作,直接跳出switch结构,执行后面的语句。

下面我们来看一个案例:键盘输入某年份及某月份,输出该月天数。

案例效果图:
在这里插入图片描述

Java代码:


import java.util.Scanner;
public class SwitchDemo {
	public static void main(String[] args) {
		Scanner input = new Scanner (System.in);
		System.out.print("请输入一个年份:");
		int year = input.nextInt();
		System.out.print("请输入一个月份:");
		int month = input.nextInt();
		int numDays = 0;
		switch (month) {
			case 1: case 3: case 5: 
			case 7: case 8: case 10: 
			case 12:
			numDays = 30;
			break;
		case 4: case 6: case 9: case 11:
			numDays = 30;
			break;
		case 2: //对2月份进行判断,看其是否是闰年
			if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0))
				numDays = 29;
			else
				numDays = 28;
			break;
			default:
				System.out.println("月份非法.");
				break;
		}
		System.out.println("该月的天数为:" + numDays);
	}
}

小结:
1.由于Java的版本不同,从Java SE7开始就课可以在switch语句中使用String对象。
2.我们从判断月份案例基础上,如果想做一个用英文输入月份名判断月份的案例,又应该如何编写呢?这时就需要运用在switch语句中使用String对象的操作了。

案例效果图:
在这里插入图片描述

参考代码:

import java.util.Scanner;
public class SwitchDemo {
	public static void main(String[] args) {
		String month = "";
		int monthNumber = 0;
		Scanner input = new Scanner (System.in);
		System.out.println("请用英语输入一个月份:");
		month = input.next();
		switch(month.toLowerCase()) {
		case "january":monthNumber = 1; break;
		case "february":monthNumber = 2; break;
		case "march":monthNumber = 3; break;
		case "april":monthNumber = 4; break;
		case "May":monthNumber = 5; break;
		case "june":monthNumber = 6; break;
		case "july":monthNumber = 7; break;
		case "august":monthNumber = 8; break;
		case "september":monthNumber = 9; break;
		case "october":monthNumber = 10; break;
		case "novemeber":monthNumber = 11; break;
		case "december":monthNumber = 12; break;
		default:
			monthNumber = 0; break;
		}
		if (monthNumber == 0) {
			System.out.println("输入的月份名称非法");
		}else {
			System.out.println(month + "是" + monthNumber + "月");
		}
	}
}

其中,mont.toLowerCase()是将字符串转化为小写字符串,switch表达式中的字符串要与每个case中的字符进行比较。



所属网站分类: 技术文章 > 博客

作者:咿呀咿呀哟

链接:http://www.javaheidong.com/blog/article/114260/796d685a7ea6274b97cf/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

10 0
收藏该文
已收藏

评论内容:(最多支持255个字符)