目录:
1.常规语法
2.正确案例分析
3.错误案例分析
1.常规语法
1.1.switch参数范围
switch(A),括号中A的取值可以是byte、short、int、char、String,还有枚举类型,应用举例:
//(1)byte
byte baction=2;
switch (baction)
{
case 1:System.out.print(baction);break;
case 2:System.out.print(baction);break;
}
//(2)short
short saction=3;
switch (saction)
{
case 1:System.out.print(saction);break;
case 3:System.out.print(saction);break;
}
//(3)int
int iaction=4;
switch (iaction)
{
case 1:System.out.print(iaction);break;
case 4:System.out.print(iaction);break;
}
//(4)char
char caction='a';
switch (caction)
{
case 1:System.out.print(caction);break;
case 'a':System.out.print(caction);break;
}
//(5)String
String straction="abc";
switch (straction)
{
case "1":System.out.print(straction);break;
case "abc":System.out.print(straction);break;
}
//(6)枚举
String fullStr="00000000000000";
CompletedProgressEnum action=CompletedProgressEnum.basic;
StringBuilder sb = new StringBuilder(fullStr);
switch (action)
{
case basic:sb.replace(0, 2,CompletedProgressEnum.basic.getValue()); break;
case edu:sb.replace(2, 4,CompletedProgressEnum.edu.getValue());break;
}
注意:long类型不能作为switch参数。
1.2.case子句
case B;case是常量表达式,也就是说B的取值只能是常量(需要定义一个final型的常量)或者int、byte、short、char(比如1、2、3、200000000000(注意了这是整型))。
如果没有符合的case,就执行default,default为非必选项。
二.正确案例分析:
1.标准型(case后面都有break语句,case后的值都是整数)
int i=3;
switch(i)
{
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
default:
System.out.println("default");
break;
}
2.常量型(case后面都有break语句,case后的值都是常量)
private final int NUM1=1;
private final int NUM2=1;
int i=3;
switch(i)
{
case NUM1:
private final int NUM2=1;
int i=3;
switch(i)
{
case NUM1:
System.out.println(1);
break;
case NUM2:
System.out.println(2);
break;
default:
System.out.println("default");
break;
}
三.错误案例分析:
1.第二种情况容易出错的情况:
发现问题
private int CLICK_QUERY = 1;
private int CLICK_RESET = 2;
@Override
public void onClick(View v)
{
int tag = (Integer) v.getTag();
switch (tag)
{
case CLICK_QUERY:
query();
break;
case CLICK_RESET:
reset();
break;
}
}
编译时一直报错:CLICK_QUERY 和CLICK_RESET——case expressions must be constant expressions
解决问题:
case后面必须跟常量,必须要常量,将上面两个变量声明为final即可。
private final int CLICK_QUERY = 1;
private final int CLICK_RESET = 2;
2.下面是switch的简单写法:
switch(A){
case B;
}
final型的变量也是有要求的,也即是它必须是编译时的常量,怎么讲呢,看下面的程序段:
final int a = 0;
final int b;
第二个语句就是在编译时不能够被识别出值的变量,因为它没有初始化,当然,这条语句也是错误的。所以总结case后的值可以是常数值或final型的值。再看下面的程序段:
byte a = 11;
switch(a){// C
case 11 : System.out.println(" 11 "); break;
case 225 : System.out.println(" 11 "); break;// D
}
该代码正确吗?答案是否定的。虽然在 C 处是合法的也即是byte型的a值可以出现在switch中,但是 D处的语句也即是第二个case后的值是225大小超过了byte的范围,所以是错误的。再就是case后的值不能出现重复。因此在使用中要注意。
3.忘记写break的错误
再就是在使用switch-case中最容易忽视的就是忘记在每个case后处理完后忘记写上break;语句。那它带来的后果是什么呢,下面小程序段会告诉你:
byte a = 2;
switch(a){
case 1 : System.out.println(" A ");
case 2 : System.out.println(" B ");
case 3 : System.out.println(" C ");
case 4 : System.out.println(" D ");
default : System.out.println(" default ");
}
=========输出结果为:
B
C
D
default
--------------------------
相关推荐
switch选择结构 目录 课程导入 掌握 switch 选择结构的语法 掌握 switch 选择结构的使用 【问题】根据学生的百分制成绩转化为等级制成绩并输出。 什么情况下使用switch选择结构 转化规则: 百分制成绩score 等级制...
Java中Switch用法代码示例 Java中的Switch语句是一种多分支选择语句,用于根据不同的值或表达式来执行不同的代码块。在Java中,Switch语句的使用需要注意以下几点: 1. Switch语句后的表达式只能是byte、short、...
Java switch关键字原理及用法详解 Java switch关键字是Java编程语言中的一种基本结构,它允许开发者根据不同的条件执行不同的代码块。switch关键字的原理是基于lookupswitch和tableswitch两种指令来实现的。在这篇...
Java switch 语句如何使用 String 参数 Java switch 语句是一种多分支语句,用于根据不同的条件执行不同的代码块。在 Java 7 之前,switch 语句只能使用整数类型(byte、short、char、int)或枚举类型作为条件...
通过上述介绍,我们了解到Java枚举类的多种用法,包括声明、初始化、方法定义、构造器、转换为集合、遍历、比较、在switch语句中的应用以及序列化等。枚举类不仅提高了代码的可读性和安全性,还简化了常量管理,使得...
总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...
### 枚举类型在switch语句中的用法 在编程语言中,枚举(Enum)是一种数据类型,它由一组固定的常量组成,通常用于表示有限的预定义值集。枚举类型的使用可以让代码更加清晰易读,并且有助于减少错误的发生。在本篇...
Java enum 的用法详解 Java enum(枚举)是一种特殊的数据类型,用于定义一组固定的常量。从 JDK 1.5 开始,Java 引入了 enum 机制,解决了传统的常量定义方式的不足。 用法一:常量 在 JDK 1.5 之前,我们定义...
### Java关键字的用法 Java作为一种广泛使用的编程语言,拥有丰富的关键字来支持其核心功能与特性。本文将详细介绍部分重要的Java关键字及其用法。 #### 1. `abstract` `abstract`关键字用于定义抽象类或抽象方法...
枚举类型可以无缝集成到Java的`switch`语句中,简化条件判断。例如: ```java public static void printDay(int i) { switch(i) { case 1: System.out.println(WeekDay.Mon); break; // ... } } ``` 这种...
在编程语言中,选择结构是控制程序流程的重要组成部分,它允许根据不同的条件执行不同的代码块。在Java中,`switch`语句...这份PPT详细介绍了`switch`的各种用法和最佳实践,是学习和掌握这一关键Java特性的宝贵资源。
学习这个“Java基础类用法示例程序”,不仅可以加深对Java基础的理解,还能提升编程能力,为更复杂的Java开发打下坚实的基础。对于初学者来说,实践这些示例并结合自己的理解去修改和扩展,将是提高技能的有效途径。...
在Java中,有多种途经和用法来实现各种功能,这些包括但不限于访问控制、类与对象的创建、流程控制以及异常处理等。 访问控制是Java中重要的概念,用于决定代码的可见性和可访问性。`private`修饰符限制了变量、...
根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍Java中常用的关键字及其用法,这些知识点对于Java初学者来说非常重要。 ### 1. Abstract `abstract` 是 Java 中的一个关键字,用于声明抽象类或抽象...
IOS Swift基础之switch用法详解 概述 Swift中的switch语句与Java等语言中的switch有很大的相似点,但是也有不同的地方,并且更加灵活。 Swift中switch的case语句中不需要添加break Swift中需要考虑所有情况,...
### Java关键字及其用法 Java作为一种广泛使用的编程语言,拥有丰富的关键字集,这些关键字是预定义的保留字,具有特定的语法含义。下面将详细解释部分重要的Java关键字及其使用场景。 #### Abstract `abstract`...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
面试中,Java语法和用法是考察候选人技术能力的重要部分。以下是对Java语法和用法的一些详细说明,以及与之相关的重点技能点。 一、面向对象的三大特性 1. 封装:封装是将数据和操作数据的方法捆绑在一起,形成一...
### Java中的Switch语句...掌握`switch`语句的基本用法及其高级特性对于提高代码质量和效率有着重要的意义。希望本文能够帮助大家更好地理解和运用`switch`语句。如果你还有任何疑问或需要进一步的帮助,请随时提问。