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

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

案例演示switch结构

程序代码:

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

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

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

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

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

原因何在?

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

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

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

程序执行结果没有问题。

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

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

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

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

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

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

添加一行代码:

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

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



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

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

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

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

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

  1. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  2. 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)

    094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  3. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  4. 092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)

    092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  5. 091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 01 static关键字(上)

    091 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  6. 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包

    090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  7. 089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 使用包进行类管理(1)——创建包

    089 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  8. 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现

    088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 02 封装的代码实现 本文知识点:Java封装的代码实现 说明:因为时间紧张,本人写博客过程中只 ...

  9. 087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点

    087 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 01 封装的概念和特点 本文知识点:封装的概念和特点 说明:因为时间紧张,本人写博客过程中只是对 ...

随机推荐

  1. 力扣Leetcode 45. 跳跃游戏 II - 贪心思想

    这题是 55.跳跃游戏的升级版 力扣Leetcode 55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃 ...

  2. 大数据计算的基石——MapReduce

    MapReduce Google File System提供了大数据存储的方案,这也为后来HDFS提供了理论依据,但是在大数据存储之上的大数据计算则不得不提到MapReduce. 虽然现在通过框架的不 ...

  3. Node.js调试相关

    如何进行Nodejs性能分析? nodejs性能最重要的两个部分:CPU耗时查看和内存泄漏排查 一,CPU相关 主要思路是两个:借助第三方的工具,以及借助v8自带的性能分析工具 借助第三方的工具 主要 ...

  4. Python爬虫实战 批量下载高清美女图片

    彼岸图网站里有大量的高清图片素材和壁纸,并且可以免费下载,读者也可以根据自己需要爬取其他类型图片,方法是类似的,本文通过python爬虫批量下载网站里的高清美女图片,熟悉python写爬虫的基本方法: ...

  5. JMeter尝鲜

    最近打算对一个线上HTTP接口做下压力测试,选择JMeter做为压测工具. 关于JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具.可以用于对静态的和动态的资源 ...

  6. Mac 安装多个版本jdk

    JDK默认安装路径为/Library/Java/JavaVirtualMachines 多版本安装后效果为: 设置 1.执行以下命令 cd ~ open -e .bash_profile #打开.ba ...

  7. Left Mouse Button (bfs)

    Mine sweeper is a very popular small game in Windows operating system. The object of the game is to ...

  8. vue mixin混入

    基本结构 export default { data() { return {} }, computed: { }, methods: { }, filters: { }, created() { } ...

  9. SpringMVC执行流程源码分析

    SpringMVC执行流程源码分析 我们先来看张图片,帮助我们理解整个流程 然后我们开始来解析 首先SpringMVC基于Servlet来运行 那么我们首先来看HttpServletBean这个类 他 ...

  10. sudo提权,ansible批量给所有主机创建系统账户,授权

    sudo(superuser or another do)让普通用户可以以超级管理员或其他人的身份执行命令. sudo基本流程如下: 1.管理员需要先授权(修改/etc/sudoers文件) 2.普通 ...