`
peonyzzdx
  • 浏览: 589737 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

switch-case

 
阅读更多
下面是switch的简单写法:
switch(A){
case B;
}
A部分中的值必须是int型的,或者是能够自动进行隐式转换成int型的表达式。也就是说A部分可以是byte/short/char/int型的。
其次要强调的是该程序中B部分的值必须是单个byte/short/char/int(
记忆:basic 基本数据类型)型的值,或者是final型的变量。

但是final型的变量也是有要求的,也即是它必须是编译时的常量,怎么讲呢,看下面的程序段:
final int a = 0;
final int b;
第二个语句就是在编译时不能够被识别出值的变量,因为它没有初始化,当然,这条语句也是错误的。
所以总结case后的值可以是常数值或final型的值。

再看下面的程序段:

public class TestSwitch {
public static void main(String[] args){
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值不能超过变量a的范围),所以是错误的。再就是case后的值不能出现重复。因此在使用中要注意。

=====================
再就是在使用switch-case中最容易忽视的就是忘记在每个case后处理完后忘记写上break;语句。那它带来的后果是什么呢,下面小程序段会告诉你:
public class TestSwitchCase {
public static void main(String[] args){
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
--------------------------
看到了吗?连default都执行,注意结束符break;就OK了。

default就是如果没有符合的case就执行它,default并不是必须的.
case后的语句可以不用大括号.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,跳出语句
switch-case语句完全可以与if-else语句互转但通常来说switch-case语句执行效率要高


分享到:
评论

相关推荐

    PHP程序设计-3期(KC016) 2.6.1条件控制switch-case常见问题.docx

    `switch-case`通常在有多个可能的条件分支且条件较为复杂时使用,相比于`if-else if-else`结构,`switch-case`可以使代码更清晰、可读性更强。当有多个独立的、不连续的值需要进行判断时,`switch-case`是更好的选择...

    switch_case_program.rar_Structure_They Is Us_n-1_switch-case

    This program written in matlab (.m) or matlab code is good example of switch-case statements. IF STATEMENT- The switch statement permits us to different statements based on the different values of a ...

    计算机二级C语言考点18switch-case语句.pdf

    C语言中的switch-case语句是程序设计中常用的多分支选择语句。它允许根据表达式的值,选择执行特定的代码分支。在C语言二级考试中,switch-case语句是考查的重点之一,以下是关于该考点的知识点详解。 1. switch-...

    PHP程序设计-3期(KC016) 2.6.1条件控制switch-case课后习题.doc

    在给定的课后习题中,我们看到的是一个使用`switch-case`解决问题的例子,旨在练习和理解这个控制结构的用法。 首先,让我们详细了解一下`switch-case`语句的基本语法: ```php switch (expression) { case value...

    MATLAB中的switch-case判断语句与for循环语句.md

    ### MATLAB中的switch-case判断语句与for循环语句 #### switch-case判断语句与for循环语句概述 在MATLAB编程环境中,`switch-case`语句和`for`循环是两个非常重要的控制流程结构,它们可以帮助程序员根据不同的...

    计算机二级C语言 考点18 switch-case 语句.pdf

    switch-case 语句 switch-case 语句是C语言中的一种选择语句,用于根据不同的值执行不同的代码块。switch 语句的基本结构为: ```c switch (expression) { case constant1: code block 1; break; case ...

    单片机资料c源码switch-case-break语句

    单片机资料c源码switch-case-break语句提取方式是百度网盘分享地址

    PHP程序设计-3期(KC016) 2.6.1条件控制switch-case拓展知识.doc

    在本节中,我们将深入探讨一种常见的条件控制结构——`switch-case`语句,以及它与`if...else`语句的拓展知识。 `switch-case`语句在多条件判断中提供了一种更为简洁的表达方式。基本语法结构如下: ```php switch...

    Android中的工厂模式(减少if-esle和switch-case)

    在Android开发中,面对大量的对象创建,我们常常会遇到代码中充斥着`if-else`或`switch-case`结构的情况,这不仅使得代码难以维护,还降低了可读性。为了解决这一问题,设计模式应运而生,其中工厂模式是一种常用的...

    switch_java_switch-case_例题_

    switch case 两个例题。1.对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。2.从键盘上输入2019年的“month”和“day”,要求通过程序输出输入的日期为2019年的第几天。

    Python-switchcase用纯Python实现的SwitchCase结构

    在"switchcase-master"这个项目中,开发者可能通过不同的设计模式或者高级技巧进一步优化了这种实现,比如支持更复杂的匹配规则,提高可读性和可维护性。如果你对该项目感兴趣,可以下载并查看源代码,学习其中的...

    switch-case语句用法

    **switch-case语句**是C语言中用于处理多分支选择的一种结构,它的出现是为了替代复杂的if-else-if链,使得代码更加简洁、易读。在处理多个可能的条件分支时,switch-case语句能有效地组织代码,使得每一种情况对应...

    PyPI 官网下载 | switchcase-1.0.tar.gz

    《PyPI官网下载 | switchcase-1.0.tar.gz - Python库详解》 在Python编程中,我们常常需要根据不同的条件执行不同的代码块,这在其他一些编程语言中可以通过switch-case语句实现。然而,Python并没有内置的switch-...

    编译原理课程设计LL1实现的C-MInus语法分析程序,其中包括用switch-case实现的词法分析程序

    本程序是个人自己写的,其中有First集,Follow集,分析表的求法,以及具体的LL1分析过程,将书本上的C-语法输入后,运行书上的C-测试代码完全正确。同时程序还可以选择自己随意的输入一段语法规则,然后再输入测试...

    Springboot消除switch-case过程解析

    在Spring Boot应用中,我们经常遇到需要根据不同的条件执行不同逻辑的情况,这通常会导致大量使用`switch-case`或`if-else`语句。然而,这样的代码结构在长期维护和扩展时可能会变得难以管理。本篇文章将探讨如何...

    python中Switch/Case实现的示例代码

    学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。 使用if…elif…elif…else 实现switch/case 可以使用if…elif…elif.....

    switch+case语句例子成绩

    `switch-case` 语句是 Java 语言中的一个控制流结构,它允许程序根据不同的条件分支执行不同的代码块。在给定的例子中,`switch-case` 语句被用来根据学生的成绩分配相应的等级,如 A、B、C、D 或 F。 首先,我们...

    Arduino项目开发 Control_switchCase_switchCase.pdf

    在 Arduino 项目开发中,`switch-case` 语句是一个重要的控制结构,它允许程序根据变量的不同值执行不同的代码块。这个例子展示了如何在 Arduino 上使用 `switch-case` 结构来处理模拟输入(如光电传感器)的数据,...

Global site tag (gtag.js) - Google Analytics