Switch语句的case穿透

一 switch语句几点说明:

  1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的.

  2.case后面表达式可以接受:

    基本数据类型,byte,short,char,int.换句话说能自动类型自动提升为int的都可以接受;

    引用数据类型可以接受枚举(JDK1.5),String字符串(JDK1.7)

  3.default不是一定要放到最后,放到中间也不会先执行它,首先匹配case,匹配不到case才会执行default,

可以在任意位置。但是建议在最后。(default最后执行)

  4.switch语句的结束条件

    遇到break就结束了

    执行到switch的右大括号就结束了

二 举例说明

  例1:看程序写结果:

    int x = 2;

    int y = 3;

    switch(x){

      default:

      y++;

      case 3:

      y++;

      case 4:

      y++;

      break;

      case 5:

      y++;

     }

    System.out.println("y = " + y);

解答过程

  x值先和case按顺序依次匹配,x=2没匹配的case,最后走了default:y++(y自增1),然后没有

遇到break或右大括号,不跳出switch语句,继续向下执行,遇到下面的case相当于不再进行判断了,

遇到break或右大括号就跳出switch语句

  结果是:y = 6

例2代码练习

  用switch语句键盘录入月份,输出对应的季节

  import java.util.Scanner;

  class sw23 {

    public static void main(String[] args) {

      Scanner sc = new Scanner(System.in);  //创建键盘录入对象

      int month = sc.nextInt();  //将键盘录入结果存储在month

      switch (month) {

        case 3:

        case 4:

        case 5:

          System.out.println(month + "月是春季");

        break;

        case 6:

        case 7:

        case 8:

          System.out.println(month + "月是夏季");

        break;

        case 9:

        case 10:

        case 11:

          System.out.println(month + "月是秋季");

        break;

        case 12:

        case 1:

        case 2:

          System.out.println(month + "月是冬季");

        break;

        default:

          System.out.println("对不起没有对应的季节");

        break;//可加可不加

      }

    }

  }

 

Switch语句的case穿透的更多相关文章

  1. switch表达式、case穿透

    记得第一次学switch的时候那是还是学习c语言的时候,整体的写if-else,switch,现在回想起来已经是很多年前的事了,好了今天让我们再来回顾下简单的switch 语法 switch(n) { ...

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

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

  3. 原生js switch语句

    一.我们在流判断的时候,我们大多数的情况我使用if  else 语句.但是对于一些大量的逻辑的判断的时候,我们不建议使用if elseif语句 这种语句的效率执行不高,因为他每个expression ...

  4. Java学习之分支结构---判断语句:if语句和switch语句

    一个if语句包含一个布尔表达式和一条或多条语句,if 语句的用语法如下:if 语句 if(布尔表达式) { //如果布尔表达式为true将执行的语句 },如果布尔表达式的值为 true,则执行 if ...

  5. C# switch语句的使用

    1  今天我们来学习switch 语句的使用,switch 语句和if else 类似 switch 语句主要的作用是用于来判断在规定条件下   根据你的选择来执行switch 语句下面case :的 ...

  6. JS基础_条件分支语句:switch语句

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 选择结构-穿透的switch语句和循环结构-循环概述

     case的穿透性 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束 publi ...

  8. (转)android import library switch语句报错case expressions must be constant expressions

    今天当我从github上下载一个工程,并把它的库文件导入eclipse中,发现switch语句报错case expressions must be constant expressions : 解决方 ...

  9. 在switch中的case语句中声明变量编译出错的解决方案

    在switch中的case语句中声明变量编译的问题 先来看段代码,别管什么意思: : , j = ; ; i < ; i++) recive_phone[i] = msgbuf.text[i]; ...

随机推荐

  1. 【Android自学日记】搭建Android开发环境

    搭建Android应用开发环境所需工具 1_> JDK(JAVA Development)推荐使用6.0以后版本 配置环境变量(以下是环境变量的具体内容及介绍) ================ ...

  2. 前端福利!10个短小却超实用的JavaScript 代码段

    JavaScript正变得越来越流行,它已经成为前端开发的第一选择,并且利用基于JavaScript语言的NodeJS,我们也可以开发出高 性能的后端服务,甚至我还看到在硬件编程领域也出现了JavaS ...

  3. ffmpeg-20160828-bin.7z

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 5 屏幕横向放大 20 像素 6 屏幕横向缩小 20 像素 S 下一帧 [ -2秒 ] +2 ...

  4. Effective C++ -----条款54:让自己熟悉包括TR1在内的标准程序库

    C++ 标准程序库的主要机能由STL.iostream.locales 组成.并包含C99 标准程序库. TR1 添加了只能指针(例如 tr1::shared_ptr).一般化函数指针(tr1::fu ...

  5. scrollView的讲解

    今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了.下面我们开始下手咯. (1)初始化 一般的组件初始化都可以alloc和 ...

  6. Android笔记:通知

    可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建. NotificationManager manager = (NotificationManager)getSystemService ...

  7. jquery获取不到append出来的新元素的解决办法

    jquery获取不到append出来的新元素的解决办法 $('body').on("click","property",function(){}) jq1.7+ ...

  8. Xcode免证书调试

    不用开发者账号,不用证书,不用创建APPID,不用绑定设备,不用生成配置文件,只需一个AppleID和密码(就是APPStore应用商店的ID和密码即可并不是开发者ID和密码)即可.即可完成真机调试, ...

  9. C++中动态内粗分配new标识符的使用

    new是C++中内建的操作符,具体用法见下面详解: (1)new用法一:基本数据类型的内存动态分配 int *p; p=new int(10): 在这个例子中首先定义个一个指向整型类型的指针,紧接着用 ...

  10. HTTP TCP UDP Socket 关系的几个经典图

      从上图可以看到,TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. ...