学习目标:

掌握switch的使用

学习内容:

1、switch语法

<font color=#000000 size=3>
switch(表达式) {
case 常量1: 语句体1; break
....
case 常量2: 语句体2; break
default: 语句体3;
}

switch中表达式可以为short、int、byte、char

case是常量,用于与表达式进行比较,如果为false则执行下一个case,如果为true则通过后面的break跳出switch循环,执行循环外的代码,如果没有一个case被匹配到则执行default语句。

流程图如下:

代码如下:

int days = 3;
switch (days) {
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;
}

运行效果:

星期三

Process finished with exit code 0

2、switch穿透
break可以省略,但是建议不要省略,省略后会出现switch穿透,穿透后会出现当while循环体内的case被正确匹配到后,后面的case判断会失效,也就是后面的语句都会执行,直到匹配到下一个break或者跳出循环。

代码如下:

int days = 3;
switch (days) {
case 1: System.out.println("星期一"); break;
case 2: System.out.println("星期二");
case 3: System.out.println("星期三");
case 4: System.out.println("星期四");
case 5: System.out.println("星期五");
case 6: System.out.println("星期六"); break;
case 7: System.out.println("星期天"); break;
}

运行效果:

星期三
星期四
星期五
星期六 Process finished with exit code 0

3、例题:(输出当前月份)

Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int day = sc.nextInt();
switch(day) {
case 12 :
case 1 :
case 2 : { System.out.println("冬季"); }; break;
case 3 :
case 4 :
case 5 : { System.out.println("春季"); }; break;
case 6 :
case 7 :
case 8 : { System.out.println("夏季"); }; break;
case 9 :
case 10 :
case 11 : { System.out.println("冬季"); }; break;
default : { System.out.println("您输入的月份有误");} break;
}
请输入月份:
11
冬季 Process finished with exit code 0

总结:

switch需要熟练掌握

Java中switch语句+例题输出当前月份的更多相关文章

  1. Java基础知识强化19:Java中switch分支语句

    java中switch语句: 这里expression控制表达式的数据类型只能是byte.short.char.int四种整型类型和枚举类型,不能是boolean类型: Java7(1.7)改进了sw ...

  2. 浅谈Java中switch分支语句

    前言: 在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句.那么现在看完这 ...

  3. 品味性能之道<十一>:JAVA中switch和if性能比较

    通常而言大家普遍的认知里switch case的效率高于if else.根据我的理解而言switch的查找类似于二叉树,if则是线性查找.按照此逻辑推理对于对比条件数目大于3时switch更优,并且对 ...

  4. 在 php 7.3 中 switch 语句中使用 continue

    在 php 7.3 中 switch 语句中使用 continue 在 php 7.3 的 switch 中使用 continue 会出现警告.1 2 3 while ($foo) { switch ...

  5. java中sql语句能不能加分号的问题?

    一.原因  在程序运行中,当执行sql后总是报无效字符错误:但是把程序放在pl/sql中执行又没有错误.让我很纳闷!于是我开始查找资料,然后我终于发现了问题. 二.问题剖析 原来在程序中:如果你在程序 ...

  6. [转帖]关于Java中SQL语句的拼接规则

    关于Java中SQL语句的拼接规则 自学demo 的时候遇到的问题 结果应该是 '"+e.getName()+"' 注意 一共有三组标点符号 (除去 方法函数后面的括号) 实现目标 ...

  7. Java中数字的格式化输出

    Java中数字的格式化输出 double d = 345.678; String s = "hello!"; int i = 1234; //"%"表示进行格式 ...

  8. java中switch、while、do...while、for

    一.Java条件语句之 switch 当需要对选项进行等值判断时,使用 switch 语句更加简洁明了.例如:根据考试的名次,给予前 4 名不同的奖品.第一名,奖励笔记本一台:第二名,奖励 IPAD  ...

  9. java基础:switch语句应用,循环的详细介绍以及使用,附练习案列

    1. switch语句 1.1 分支语句switch语句 格式 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default ...

随机推荐

  1. [k8s] k8s基于csi使用rbd存储

    描述 ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合.通过 ceph-csi 使用 ceph rbd块设备,它动态地提供rbd以支持 Kub ...

  2. 面试官:Redis中哈希数据类型的内部实现方式是什么?

    面试官:Redis中基本的数据类型有哪些? 我:Redis的基本数据类型有:字符串(string).哈希(hash).列表(list).集合(set).有序集合(zset). 面试官:哈希数据类型的内 ...

  3. laravel 终端命令

    创建模块及控制器

  4. egg-jwt的使用

    安装 npm install egg-jwt --save 配置 // config/config.default.js config.jwt = { secret: 'zidingyi', // 自 ...

  5. CF1534F1题解

    首先,对于一个在第 \(i\) 行 \(j\) 列的沙子,如果他开始下降,他能够使哪些沙子下降呢? 很容易得知是第 \(j-1,j,j+1\) 列所有行号不小于 \(i\) 的沙子. 对于沙子 \(u ...

  6. 盘点十大GIS相关算法

    1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...

  7. jdbc创建数据库的连接

    package com.gylhaut.db; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res ...

  8. [源码解析] TensorFlow 分布式环境(4) --- WorkerCache

    [源码解析] TensorFlow 分布式环境(4) --- WorkerCache 目录 [源码解析] TensorFlow 分布式环境(4) --- WorkerCache 1. WorkerCa ...

  9. python发送邮件之宝藏库yagmail

    之前使用email模块+smtplib模块发送邮件,虽然可以实现功能,但过程比较繁琐,今天发现一个宝藏库(yagmail),可以说是炒鸡好用啦!!! 贴上实现代码,大家细品 yagmail安装 pip ...

  10. [SPDK/NVMe存储技术分析]001 - SPDK/NVMe概述

    1. NVMe概述 NVMe是一个针对基于PCIe的固态硬盘的高性能的.可扩展的主机控制器接口. NVMe的显著特征是提供多个队列来处理I/O命令.单个NVMe设备支持多达64K个I/O 队列,每个I ...