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. rtmp规范1.0全面指南

    RTMP(real time messaging protocol)协议 本文为Adobe rtmp规范1.0的中文介绍,其中内容大部分都是翻译自rtmp官方文档rtmp_specification_ ...

  2. 滑动窗口(Sliding Window)技巧总结

    什么是滑动窗口(Sliding Window) The Sliding Problem contains a sliding window which is a sub – list that run ...

  3. 使用JS制作小游戏贪吃蛇

    先看效果图: 过程如下: 1.首先创建一张画布地图<div class="map"> </div>: 2.创建食物的自调用函数 (function (){ ...

  4. laravel在视图中使用类似于“__PUBLIC__”,“__UPLOADS__”的操作

    首先在config文件夹下建立static.php文件 然后在里面定义常量 例: <?php define('__PUBLIC__', '/'); define('__UPLOADS__', ' ...

  5. 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 说明:本人曾经在listview嵌套gridview出现 ...

  6. 【Spring注解驱动开发】AOP核心类解析,这是最全的一篇了!!

    写在前面 昨天二狗子让我给他讲@EnableAspectJAutoProxy注解,讲到AnnotationAwareAspectJAutoProxyCreator类的源码时,二狗子消化不了了.这不,今 ...

  7. 据说是最好的记忆工具——Anki

    http://www.ankichina.net/ .u1s1,确实挺好用,自建题库,全程自助. 可以插入文字.图片.音频,会安排合理的复习频率,可以随时同步,电脑手机版本全.

  8. 利用阿里云服务器免费体验word press博客、个人网站

    本文首发于我的个人博客:https://chens.life/create-wordpress-blog.html 前言 目前市面上有许许多多的虚拟云服务器ECS,例如阿里云.华为云.又拍云等等,他们 ...

  9. webpack 多页面构建

    目标: 基于webpack支持react多页面构建(不用gulp,gulp-webpack 构建速度太慢[3]), generator-react-webpack 对单页面支持很好,但对多页面,需要改 ...

  10. vue 页面首次加载缓慢原因及解决方案

    第一次打包vue的项目部署到服务器,发现首次加载特别的缓慢要几十秒才加载出来,完全没有在本地开发环境上那么流畅. 主要原因是页面在打包后没有进行相关的配置导致资源文件特别大,一次想要全部加载完成回特别 ...