当前位置: 首页 > news >正文

8、JAVA入门——switch选择结构

目录

1、定义

2、语法

3、执行规律

4、 switch与多重if异同点


1、定义

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 

2、语法

switch case 语句语法格式如下:

		switch(表达式){
			case 常量 1:
				语句;
				break;    //可选
			case 常量 2:
				语句;
				break;    //可选
			......        //你可以有任意数量的case语句
			default:      //可选 
				语句;
				break;
		}

-->switch、case、break、default是Java关键字

-->switch后的表达式可以是int、short、byte、char、枚举类型、从 JDK1.7开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

-->case用于与表达式进行匹配,switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

-->break用于终止后续语句的执行。

-->default是可选的,当其他条件都不匹配时执行default。

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。

public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}

3、执行规律

1)计算switch后表达式的值。

2)将计算结果从上至下依次与case后的常量值比较。

3)如果相等就执行该常量后的代码块,遇到break语句就结束。

4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。

注意事项:

1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。

	public static void main(String[] args) {
		/*
		 * 根据输入的月份来输出月份属于哪个季节
		 * 
		 * 12 1 2 冬季
		 * 3 4 5 春季
		 * 6 7 8 夏季
		 * 9 10 11 秋季
		 * 
		 */
		
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入月份(1-12):");
		int month =sc.nextInt();
		
		switch(month){
		case 12:
//			System.out.println("冬季");
//			break;
		case 1:
//			System.out.println("冬季");
//			break;
		case 2:
			System.out.println("冬季");    //输入12,1月时,穿透进入case 2:中
			break;
		case 3:
//			System.out.println("春季");
//			break;
		case 4:
//			System.out.println("春季");
//			break;
		case 5:
			System.out.println("春季");    //输入3,4月时,穿透进入case 5:中
			break;
		case 6:
//			System.out.println("夏季");
//			break;
		case 7:
//			System.out.println("夏季");
//			break;
		case 8:
			System.out.println("夏季");    //输入6,7月时,穿透进入case 8:中
			break;
		case 9:
//			System.out.println("秋季");
//			break;
		case 10:
//			System.out.println("秋季");
//			break;
		case 11:                            
			System.out.println("秋季");    //输入9,10月时,穿透进入case 11:中
			break;
		}

	}

2)case常量值不能相同。

3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。

4、 switch与多重if异同点

相同点:

都是用来处理多分支条件的结构

不同点:

switch选择结构只能处理等值条件判断的情况

多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况

相关文章:

  • Inno Setup 创建Revit安装包
  • Windows和Linux使用FRP实现内网穿透
  • c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务
  • UI 自动化测试应不应该投入?有没有前途?怎样做最明智?
  • 股票量化交易有什么优势?
  • 元宇宙电商-NFG系统,是如何用数字藏品平台,促进新营销的?
  • thunderbird102编译-环境搭建(1)
  • curl用法:查看响应时间
  • 房地产基础知识!!!
  • 写一个简单食用的拦截器
  • 算法竞赛进阶指南 0x68 二分图的匹配
  • 【无标题】数字ic设计|ic芯片设计全流程
  • Stable Diffusion搭建全过程记录,生成自己的专属艺术照
  • 【iOS自动化测试】第二章:环境安装
  • 源码安装LAMT架构
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【笔记】你不知道的JS读书笔记——Promise
  • Apache Spark Streaming 使用实例
  • ECMAScript6(0):ES6简明参考手册
  • Java基本数据类型之Number
  • Logstash 参考指南(目录)
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • PermissionScope Swift4 兼容问题
  • RxJS: 简单入门
  • SpringBoot几种定时任务的实现方式
  • storm drpc实例
  • 阿里云前端周刊 - 第 26 期
  • 对超线程几个不同角度的解释
  • 分类模型——Logistics Regression
  • 高程读书笔记 第六章 面向对象程序设计
  • 老板让我十分钟上手nx-admin
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端性能优化——回流与重绘
  • 小李飞刀:SQL题目刷起来!
  • 携程小程序初体验
  • 用quicker-worker.js轻松跑一个大数据遍历
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # .NET Framework中使用命名管道进行进程间通信
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (11)MSP430F5529 定时器B
  • (33)STM32——485实验笔记
  • (4)Elastix图像配准:3D图像
  • (Note)C++中的继承方式
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (接口封装)
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十八)三元表达式和列表解析
  • .gitignore文件_Git:.gitignore
  • .net core Swagger 过滤部分Api
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法