038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

本文知识点:案例演示switch结构并对switch结构进行总结

案例演示switch结构

mark

程序代码:
下图中的代码没有格式缩进,如何解决?
mark

在eclipse的代码编辑区,右击,source→format
mark

代码就完成格式缩进了,看起来清爽很多
mark

执行程序,会发现有问题:
发现输入4,包括周四之后的所有语句都输出了。
mark

原因何在?
答案很简单,没有添加break语句。

那解决办法也很简单,在case4的输出语句后添加上break,再测试,输入4,此时发现,程序只输出了周四,之后就结束了,再没有输出其他case4之后的语句。break的作用就在于此。
mark

所以,我们该给每个case之后都添加上break语句。

public static void main(String[] args) {
	System.out.println("请输入数字1-7,表示周一到周天");
	Scanner sc = new Scanner(System.in);
	int n = sc.nextInt();
	switch (n) {
	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;
	default:
		System.out.println("输入的数据超出了1-7的范围!");
	}
}

程序执行结果没有问题。
mark

mark

如果输入的不是整型会如何?

如果输入的数据不是要求的整型(n初始化的时候是int类型),则产生输入不匹配异常:InputMismatchException
mark

改写程序——不用整数匹配,而改用字符串进行switch表达式与case常量的匹配

改写程序的代码及其运行结果:

public static void main(String[] args) {
	System.out.println("请输入表示星期的英文单词,表示周一到周天");
	Scanner sc = new Scanner(System.in);
	String week = sc.next();
	switch (week) {
	case "MONDAY":
		System.out.println("周一");
		break;
	case "TUESDAY":
		System.out.println("周二");
		break;
	case "WEDNESDAY":
		System.out.println("周三");
		break;
	case "THURSDAY":
		System.out.println("周四");
		break;
	case "FRIDAY":
		System.out.println("周五");
		break;
	case "SATURDAY":
		System.out.println("周六");
		break;
	case "SUNDAY":
		System.out.println("周天主日,分别为圣的日子,敬拜上帝");
		break;
	default:
		System.out.println("单词输入错误!");
	}
}

注意:字符串类型的匹配注意要区分大小写
mark

单词全部大写输入正确无误后,程序执行结果无误。
mark

mark

如何随便输入,都能保证是大写?
添加一行代码:

week = week.toUpperCase();  //把字符串中的字符全部改为大写

添加这行代码后,运行程序,发现即使输入小写,也完全没有问题
mark
mark

插一句,改为大写字母的代码为什么可以这样写?

String week = sc.next();
week = week.toUpperCase();  //把字符串中的字符全部改为大写

因为String 本身是类,week是类对象,对象通过对象名.方法名的形式调用方法。

这一点,目前不必深究,后面学到面向对象会详细讲解。

posted @ 2020-09-16 11:40  皿哥的技术人生  阅读(175)  评论(0编辑  收藏  举报