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. Ubuntu 16.04 安装CP210x,CH340驱动

    CH340 https://github.com/juliagoda/CH341SER CP210x 因为源码版本不是linux-source-4.15.0-91-generic,导致error,一个 ...

  2. windows环境安装vue-cli及webpack并创建vueJs项目

    1. 安装node.js 2. 如果安装的是旧版本的 npm,可以通过 npm 命令来进行版本升级,命令如下: npm install npm -g npm网站服务器位于国外,所以经常下载缓慢或出现异 ...

  3. e3mall商城的归纳总结3之后台商品节点、认识nginx

    一  后台商品节点 大家都知道后台创建商品的时候需要选择商品的分类,而这个商品的分类就就像一棵树一样,一层包含一层又包含一层.因此这里用的框架是easyUiTree.该分类前端使用的是异步加载模式(指 ...

  4. 【转载】pandas常用函数

    原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...

  5. Data Vault玩转数据仓库(三)

    在Data Vault 2.0版本里,其不只是针对数据仓库的建模,同时也包含了架构,方法论以及实现.这篇挑几个概念,附上我个人对其的理解.同时也把这个系列的名字改成<Data Vault玩转数据 ...

  6. C#垃圾代码随机生成器

    直接上代码: using UnityEngine; using System.Collections.Generic; using UnityEditor; using System.IO; usin ...

  7. LoadRunner回放脚本遇到的问题(遇到就补上)

    问题一:Error-26612:HTTP Status-code=500(Internal Server Error) 解决过程:google找到了关于这个错误有多种解决的方法,但是都不是我要的,最重 ...

  8. 网址中的静态资源 public

     客户端浏览器收到的HTML响应内容中如果带有 link img script video audio 等带有src或者href标签时候,这些都是外部链接资源请求url.浏览器会默认自动性的对这些资源 ...

  9. 14_Python语法示例(面向对象)

    1.自己写一个Student类,此类的对象有属性name, age, score, 用来保存学生的姓名,年龄,成绩 # 1)写一个函数input_student读入n个学生的信息,用对象来存储这些信息 ...

  10. Activiti7 流程变量(UEL-Value方式)

    需求:请假天数大于3天走总经理审批,小于等于3天直接走人事 画图 因为IDEA不展示那个线上的东西,所以截屏自己写的,还有就是我感觉IDEA画图挺坑的,之前画了好几遍,一部署就报错,很奇怪 /** * ...