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

时间:2022-07-02 00:35:08

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

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

案例演示switch结构

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

程序代码:

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

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

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

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

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

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

执行程序,会发现有问题:

发现输入4,包括周四之后的所有语句都输出了。

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

原因何在?

答案很简单,没有添加break语句。

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

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

所以,我们该给每个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的范围!");
}
}

程序执行结果没有问题。

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

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

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

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

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

改写程序——不用整数匹配,而改用字符串进行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("单词输入错误!");
}
}

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

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

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

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

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

如何随便输入,都能保证是大写?

添加一行代码:

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

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

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

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

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

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

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

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