Java Switch Java Switch Statement

switch语句的执行规则如下

    1、从第一个case开始判断,不匹配则跳到下一个case继续判断;

    2、遇到break则跳出switch语句;

    3、default一般是没有匹配项才执行的,一般是放在switch语句末尾。在如下情况下,它会被执行:一、没有匹配项的时候;二、匹配项最后没有break语句,default跟在这个匹配项后面。

switch表达式支持的数据类型

=>从JDK7开始switch表达式开始支持枚举enum、String以及包装类

* byte and Byte
* short and Short
* char and Character
* int and Integer
* enum
* String

switch语句注意事项

  • switch(表达式)中表达式的返回值必须是下述几种类型之一:byte,short,char,int,枚举enum,String以及对应的包装类(Byte、Short、Character、Integer);

  • case子句中的值必须是常量不允许为变量,而且必须和switch(表达式)中表达式的数据类型一致,且所有case子句中的值应是不同的;

  • break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾;

  • default子句是可选的,当没有匹配的case时,执行default;

  • default子句在最后一行时,下面的break可以省略不写,但如果没有在最后一行,default子句下面需要加上break,否则执行完default后会继续执行下面的代码直到遇到break跳出循环;

实践案例

public class SwitchDemo {
public static void main(String[] args) {
int type = 4;
switch (type) {
default:
System.out.println(4);
case 1:
System.out.println(1);
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
}
}
}

参考答案

```
4
1
2
```
public class SwitchDemo2 {
public static void main(String[] args) {
int x = 5;
switch (x) {
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B");
break;
default:
System.out.println("结束");
case 3:
System.out.println("C");
break;
case 4:
System.out.println("D");
break;
}
}
}

参考答案

```
结束
C
```
public class SwitchDemo3 {
public static void main(String[] args) {
System.out.println(getValue(2));
} public static int getValue(int i) {
int result = 0;
switch (i) {
default:
System.out.println("default");
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}
}

参考答案

```
10
```
public class SwitchDemo4 {
public static void main(String[] args) {
byte a = 4;
switch (a) {
default:
System.out.println("default");
case 1:
System.out.println("A");
case 2:
System.out.println("B");
case 3:
System.out.println("C");
break;
case 4:
System.out.println("D");
}
}
}

参考答案

```
D
```
public class SwitchDemo5 {
public static void main(String[] args) { int month = 2;
int year = 2000;
int numDays = 0; switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;
case 2:
if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
System.out.println("Number of Days = " + numDays);
}
}

参考答案

```
Number of Days = 29
```
public class SwitchDemo6 {
public static void main(String[] args) {
int number = 20;
// switch expression with int value
switch (number) {
// switch cases without break statements
case 10:
System.out.println("10");
case 20:
System.out.println("20");
case 30:
System.out.println("30");
default:
System.out.println("Not in 10, 20 or 30");
}
}
}

参考答案

```
20
30
Not in 10, 20 or 30
```
public class SwitchDemo7 {
public static void main(String args[]) {
// Byte age = 18;
// Short age = 18;
// Character age = 18;
Integer age = 18;
switch (age) {
case (16):
System.out.println("You are under 18.");
break;
case (18):
System.out.println("You are eligible for vote.");
break;
case (65):
System.out.println("You are senior citizen.");
break;
default:
System.out.println("Please give the valid age.");
break;
}
}
}

参考答案

```
You are eligible for vote.
```

参考资料

Java Switch Statement的更多相关文章

  1. java.sql.preparedstatement和java.sql.statement的区别

    本文转自CSDN,然后整理了一遍.原文出处:CSDN JDBC(java database connectivity,java数据库连接)的api中的主要的四个类之一的java.sql.stateme ...

  2. java.lang.ClassCastException: sun.jdbc.odbc.JdbcOdbcStatement cannot be cast to java.beans.Statement

    当导入的包为:import java.sql.Statement;时,无任何错误 当导入的包为:import java.beans.Statement;时,出错

  3. ALTER TABLE SWITCH' statement failed. The table x' is partitioned while index 'x' is not partitioned.

    1.L_Monitoring有这么些字段,ID,Collecttime,PlateType,PlateNO以及其他一些这段.建立这个表的时候是个非分区表,其中ID是主键,并在Collecttime,P ...

  4. Java Switch支持的类型问题

    常见支持类型为int,byte,short,char及枚举类型.以上是JDK1.6以前的版本.JDK1.7时,又增加了String. 参考资料:1.java switch支持的数据类型 2.java中 ...

  5. Java switch case和数组

    Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch case 语句格式: switch(express ...

  6. Java-Runoob:Java switch case

    ylbtech-Java-Runoob:Java switch case 1.返回顶部 1. Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等 ...

  7. Java Switch(String)

    package shb.java.test; /** * switch支持字符串 * @Package:shb.java.test * @Description: * @author shaobn * ...

  8. 解决java switch……case不能匹配字符串的问题

    java1.7已经支持了匹配字符串 方案1. enum Animal { dog,cat,bear; public static Animal getAnimal(String animal){ re ...

  9. java Switch中的case后面加上大括号({})和不加大括号的区别

    java基础求真之switch 的case 后面加上大括号和不加大括号的区别. 下面给出三段代码大家看一下有什么不同以及哪段代码能够编译通过那段代码编译不能通过,为什么?(Why?) 代码片段一: i ...

随机推荐

  1. 前端端对端测试:基于PhantomJS的CasperJS

    简介 Casperjs是一个基于PhantomJS和SlimerJS的前端端对端测试框架,当然你也可以使用它完成网络爬虫功能,它的特点的通过简单的脚本模拟浏览器行为, 主要有casper.tester ...

  2. grep index.php *

    zb@zb-computer:/usr/local/nginx/conf/vhost$ grep index.php * caomall17.conf: index index.html index. ...

  3. -webkit-line-clamp 多行文字溢出...

    一.应用 CSS代码: .box { width: 100px; display: -webkit-box; -webkit-line-clamp:; -webkit-box-orient: vert ...

  4. HDU 1211 EXGCD

    EXGCD的模板水题 RSA算法给你两个大素数p,q定义n=pq,F(n)=(p-1)(q-1) 找一个数e 使得(e⊥F(n)) 实际题目会给你e,p,q计算d,$de \mod F(n) = 1$ ...

  5. Python学习笔记(四十一)— 内置模块(10)urllib

    摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432688314 ...

  6. PHP与数据库

    连接数据库 Connect 访问数据库的数据之前,先要与数据库建立连接,使用mysql_connect()方法与数据库建立连接. mysql_connect()参数 <?php //server ...

  7. protoc

    平台安装: 在window 平台使用的工具protoc.zip linux平台的安装方式. 执行在windos平台上执行生成java代码命令: protoc --java_out=./ Keyword ...

  8. 【Atcoer】ARC088 E - Papple Sort

    [题目]E - Papple Sort [题意]给定长度为n的小写字母串,只能交换相邻字母,求形成回文串的最小步数.n<=2*10^5. [算法]数学 [题解]官方题解 本题题解中有以下重要的思 ...

  9. 【洛谷 P3299】 [SDOI2013]保护出题人 (凸包,三分,斜率优化)

    题目链接 易得第\(i\)关的最小攻击力为\(\max_{j=1}^i\frac{sum[i]-sum[j-1]}{x+d*(i-j)}\) 十分像一个斜率式,于是看作一个点\(P(x+d*i,sum ...

  10. zedboard学习记录.2.PS+PL 流水灯与uart

    1.建立一个工程. 硬件设计 2.IP integrator -> create block desgin;Run Block Automation. 3.add IP -> AXI GP ...