Java中的switch分支结构

news2024/12/23 22:35:29

switch分支结构

  • switch分支结构
    • 1.基本语法
    • 2.说明
    • 3.流程图
    • 4.案例
    • 5.注意事项
    • 6.练习
    • 7.switch和if的比较

switch分支结构

1.基本语法

switch(表达式){
	case 常量1:  //当...
	语句块1;
	break;
	case 常量2:  
	语句块2;
	break;
	...
	case 常量n:  
	语句块n;
	break;
	default:
	default语句块;
	break;
}

在Java中只要是一个表达式就有值返回

2.说明

1)switch关键字,表示switch分支
2)表达式 对应一个值
3)case 常量1 :当表达式的值等于常量1,就执行 语块1
4)break :表示退出switch
5)如果和case 常量1 匹配,就执行语块1,如果没有匹配,就继续匹配 case 常量2
6)如果一个都没有匹配上,执行default

3.流程图

在这里插入图片描述
如果等于常量1,执行语句块1,若没有break则会执行语句块2,还没有break继续执行语句块3(穿透)

4.案例

编写一个程序,该程序可以接收一个字符,比如a,b,c,d,e,f,g
a表示星期一,b表示星期二…
根据用户的输入显示相应的信息,要求使用switch语句完成

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入");
	char c1 = sc.next().charAt(0);
//在Java中只要是一个表达式就有值返回
	switch(c1) {
		case 'a' :
			System.out.println("今天星期一");
			break;
		case 'b' :
			System.out.println("今天星期二");
			break;
		case 'c' :
			System.out.println("今天星期三");
			break;
		//..... 	
		default:
			System.out.println("输入不正确");
			
	}

	System.out.println("退出switch,继续执行程序");
			
	}  
}

5.注意事项

1)表达式数据类型应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int(字符型可以自动转换成int型)
2)switch(表达式)中表达式的返回值必须是:byte , short , int , char , enum[枚举] , String
3)case子句中的值必须是常量或常量表达式,而不能是变量
4)default子句是可选的,当没有匹配的case时,执行default
5)break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break;

6.练习

对于成绩大于60分的,输出“合格”,低于60分的,输出“不合格”。输入的成绩不得大于100

1)临时变量temp

import java.util.Scanner;//表示把java.util包下的Scanner类导入
public class comment00{

	//编写一个main方法
	public static void main(String[] args){
	
	Scanner sc = new Scanner(System.in);
	System.out.println("请输入成绩");
	double temp = sc.nextDouble(); //用一个临时变量temp来接收键盘输入的成绩
	int grade = 0;

	if(temp >= 0 && temp < 60){
		grade = 1;
	}
	else if(temp >= 60 && temp <=100){
		grade = 2;
	}
	else{
		System.out.println("成绩不对重新输入");
	}
	
	
	switch(grade) {
		case 1 :
			System.out.println("不合格");
			break;
		case 2 :
			System.out.println("合格");
			break;
	}

			
	}  
}

2)强制类型转换(int)成绩 / 60

import java.util.Scanner;
public class comment01{

	public static void main(String[] args){

	Scanner sc = new Scanner(System.in);
	System.out.println("请输入成绩:");
	double grade = sc.nextDouble();

	if(grade >= 0 && grade <= 100){
		switch((int)(grade / 60)){
			case 0 :
			System.out.println("不合格");
			break;
			case 1 :
			System.out.println("合格");	
			break;
		}

	}
	else{
		System.out.println("成绩输入错误,请输入成绩在0-100内");
	}
	
	}



}

根据指定月份,打印该月份所属的季节。3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季

import java.util.Scanner;
public class comment01{

	public static void main(String[] args){

	 Scanner sc = new Scanner(System.in);
	 System.out.println("请输入月份(1-12):");
	 int month = sc.nextInt();
 
	 //case穿透
	 
	 switch(month){
	 	case 1 :
	 	case 2 :
	 	case 12 :
	 		System.out.println("冬季");
	 		break;
	 	case 3 :
	 	case 4 :
	 	case 5 :
	 		System.out.println("春季");
	 		break;
	 	case 6 :
	 	case 7 :
	 	case 8 :
	 		System.out.println("夏季");
	 		break;
	 	case 9 :
	 	case 10 :
	 	case 11 :
	 		System.out.println("秋季");
	 		break;
	 	default :
	 		System.out.println("输入有误,请输入1-12的月份");
	 }

	}
}

7.switch和if的比较

1)如果判断的具体值不多,而且符合byte、short、int、char、enum、String这6种类型。虽然两个语句都可以使用,建议使用switch语句。
2)其他情况:对区间判断,对结果为boolean类型判断,使用if ,if的适用范围更广。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python之认识变量

1、变量 1.1、定义 字面意思来看&#xff0c;会发生改变的量称为变量。 相反的&#xff0c;如果有一个不会发生改变的量&#xff0c;它应该称为不变量&#xff0c;即常量。 1.2、引入变量的原因 主要是为了方便程序员动态的管理、操控数据。 1.3、变量的三要素 名称 类型…

20_Python的包和模块

包和模块 在Python中&#xff0c;包和模块是用来组织代码的一种方式。它们可以帮助开发者管理代码结构&#xff0c;使得代码更易于维护和复用。 内置的包和模块第三方包和模块自定义包和模块 模块(Module) 模块是包含Python定义和语句的文件。一个模块就是一个单独的Python…

GO网络编程(一):基础知识

1. 网络编程的基础概念 TCP/IP 协议栈 TCP/IP 是互联网通信的核心协议栈&#xff0c;分为以下四个层次&#xff1a; 应用层&#xff08;Application Layer&#xff09;&#xff1a;为应用程序提供网络服务的协议&#xff0c;比如 HTTP、FTP、SMTP 等。传输层&#xff08;Tra…

颠覆声音转换!Seed-VC零样本模仿技术揭秘

颠覆声音转换&#xff01;Seed-VC零样本模仿技术揭秘 Seed-VC是一款炫酷的AI声音转换工具&#x1f3a4;&#xff0c;能瞬间模仿明星和角色的声音✨&#xff01;它具备“零样本”学习能力&#xff0c;且支持变速&#xff0c;轻松带来自然流畅的音效&#x1f3b6;。绝对是声音创…

提升银行CRM系统安全性,实践指南

Zoho 银行CRM系统安全措施包括访问控制、数据加密、安全审计、防火墙、物理安全、应急响应和用户教育。这些措施保护客户信息和银行运营安全&#xff0c;需持续更新以应对安全挑战。 1、系统访问控制 系统访问控制是保障银行CRM系统安全的首要步骤。银行需要确保只有授权的用户…

fiddler抓包15_AutoResponder自动重定向 - 篡改响应

课程大纲 ① 抓取请求&#xff0c;保存response到本地 双击列表请求项查看详情 - 响应区“文本查看”&#xff0c;点击“用笔记本打开”&#xff0c;另存文件。 ② 修改保存的response文件 ③ 开启自动重定向&#xff0c;配置规则 拖拽录制的请求到右侧&#xff0c;选择本地已修…

Mysql 索引底层数据结构和算法

索引数据结构 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的一种有序数据结构。索引是存储到表空间中&#xff0c;当我们的 sql 中的where条件用到索引的时候&#xff0c;会在存储层就过滤出数据来&#xff0c;如果不走索引&#xff0c;则需要在server层过滤。 …

【YOLO目标检测电梯间电动车与人数据集】共4321张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式&#xff1a;YOLO格式 图片数量&#xff1a;4321 标注数量(txt文件个数)&#xff1a;4321 标注类别数&#xff1a;2 标注类别名称&#xff1a;person、electricBicycle 数据集下载&#xff1a;电梯间电动车与人数据集 图片示例 数据…

大厂进阶之CSS死磕牢记的7大知识点

本文主要讨论7大CSS知识点&#xff0c;个个都是金刚附体&#xff0c;干货满满&#xff1a; 1、移动端样式适配 2、回流和重绘 3、flex布局 4、BFC 5、CSS垂直居中方法 6、CSS两栏、三栏自适应布局 7、CSS单行、多行文本溢出省略号格式 一、如何做到移动端样式适配 1、媒体查询…

Python 从入门到实战32(数据库MySQL)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了数据库编程接口操作的相关知识。今天我们将学习…

Java Servlet 详解

Java Servlet 是 Java 企业级应用 中的一个核心组件&#xff0c;特别是在 Web 应用开发中&#xff0c;它为服务器端处理请求提供了基础。每次用户发出请求时&#xff0c;Servlet 都会动态生成响应&#xff0c;这在构建复杂、交互式的 Web 应用时尤为重要。 什么是 Servlet&am…

快餐时代读快书,十分钟左右就能读懂一本书

在这个快节奏的时代&#xff0c;时间似乎永远不够用。我们忙于工作、学习&#xff0c;往往连一本书都难以静下心来读完。不过&#xff0c;现在有了一个超级高效的读书网站&#xff0c;能让你在十分钟左右读懂一本书的精华&#xff0c;真是太棒了&#xff01; 发现高效阅读的网…

Java的学习(语法相关)

字符串存储的问题 char 和字符串都是字符的集合&#xff0c;它们之间的确有相似性&#xff0c;但在 Java 中它们有着不同的存储机制和处理方式。让我从 char 和 String 的本质区别入手来解释。 1. char 和 String 的区别 char 是基本类型&#xff1a;char 是 Java 中的基本数据…

Linux高级编程_27_系统调用

文章目录 系统调用函数分类系统编程概述系统调用概述**类UNIX系统的软件层次** 用户态和内核态系统调用与库函数的关系文件操作符概述文件磁盘权限 系统调用之文件操作open:打开文件close:关闭文件write:写入read:读取 文件状态fcntl 函数stat 函数 st_mode的值示例 1&#xff…

光通信——FTTx

目录 FTTH模式 FTTO模式 FTTR模式 FTTB/CLAN/xDSL模式 FTTCabxDSL模式 根据接入光纤到用户的距离分类&#xff0c;PON可应用于光纤到交接箱&#xff08;FTTCab&#xff09;、光纤到大楼/路边&#xff08;FTTB/C&#xff09;、光纤到办公室&#xff08;FTTO&#xff0…

鸿蒙harmonyos next flutter混合开发之开发package

​​​​​​ 创建 package flutter create --templatepackage mypackage package代码如下&#xff1a; 创建hello_world.dart ///HelloWorld返回hello world 拼接param class HelloWorld {String helloWorld(String param) > "hello world ${param}"…

[Linux] Linux 的进程如何调度——Linux的 O(1)进程调度算法

标题&#xff1a;[Linux] Linux 的进程如何调度——优先级与进程调度 个人主页水墨不写bug 目录 一、前言 二、将要出现的概念 1.进程调度队列 2.位图 3.进程的优先级 三、Linux进程的调度过程 1.活动队列&#xff08;*active指向的队列&#xff09; 2.过期队列&#…

Linux的多线程(线程的创建,退出,取消请求,取消处理例程,线程属性的设置)

进程:是系统分配资源的最小单位,系统会为每一个进程分配一块独立的虚拟内存空间 线程:是系统调度的最小单位,系统不会为线程分配新的内存空间,但是线程也参与系统调度 cpu把时间片分给每一个进程&#xff0c;进程中的时间片再切分分给每一个线程&#xff0c;所以线程也会得到…

在掌控板中加载人教版信息科技教学指南中的educore库

掌控板中加载educore库 人教信息科技数字资源平台&#xff08;https://ebook.mypep.cn/free&#xff09;中的《信息科技教学指南硬件编程代码说明》文件中提到“本程序说明主要供教学参考。需要可编程主控板须支持运行MicroPython 脚本程序。希望有更多的主控板在固件中支持ed…

【重学 MySQL】五十二、MySQL8 新特性:计算列

【重学 MySQL】五十二、MySQL8 新特性&#xff1a;计算列 定义特性用法应用场景注意事项 在MySQL8中&#xff0c;计算列是一项引入的新特性&#xff0c;它为数据处理和分析提供了更大的灵活性和便捷性。 定义 计算列是指根据数据库中其他列的值通过计算得出的新列&#xff0c…