第十四届蓝桥杯集训——JavaC组第十一篇——switch

news/2024/11/29 4:32:18/

第十四届蓝桥杯集训——JavaC组第十一篇——switch


目录

第十四届蓝桥杯集训——JavaC组第十一篇——switch

swtich概述

switch语法

default作用

switch基础示例:

String类型switch示例

switch枚举判断

巧用break

石头剪刀布 测试代码:


swtich概述

Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以C语言来说,switch(开关语句)常和case break default一起使用。

代码中虽然没有限制if else能够处理的分支数量 ,但当分支过多时,用 if else处理会不太方便 ,所以对于这种情况,实际开发中一般使用switch语句代替 。

switch语法

flag(标示)表示计算结果, 必须是整性, 字符串类型, 或者枚举类型。

switch (flag){
 
​ case 0 : 语句一; break;
 
​ case 1: 语句二; break;
 
​ default: 语句n; break;
 
}

default作用

default在当前switch找不到匹配的case时执行。default并不是必须的。

package com.item.action;public class Main {public static void main(String args[]) {int x = 0;switch (x) {case 1:System.out.println(1);case 2:System.out.println(2);default:System.out.println("default");}}
}

switch基础示例:

package com.item.action;public class Main {public static void main(String[] args) {int flag = 3;switch (flag){case 0: System.out.println("The number is 0" ); break;case 1: System.out.println("The number is 1" ); break;case 2: System.out.println("The number is 2" ); break;default: System.out.println("no have choose" ); break;}}
}

输出结果:

由于没有3这个case故而会走到default的路径上。

这是一个很标准的switch的用法,有break,还有default,在什么情况下跳出,在什么情况下结束运行,都很清楚的说明了,但是朋友们在写这个代码的时候,有可能会忘记加入break 或者忘记加入default这样的问题吧。

String类型switch示例

jdk1.7以上才支持·jdk1.7以下需要使用枚举/hashCode

package com.item.action;public class Main {public static void main(String[] args) {String str =  "C" ;switch  (str) {case  "A" :System.out.println( "A" );break ;case  "B" :System.out.println( "B" );break ;case  "C" :System.out.println( "C" );break ;default :System.out.println( 0 );}}
}

switch枚举判断

这个开发的过程中

package com.item.action;public class Main {static  enum  E {A, B, C, D}public  static  void  main(String args[]) {E e = E.B;switch  (e) {case  A:System.out.println( "A" );break ;case  B:System.out.println( "B" );break ;case  C:System.out.println( "C" );break ;case  D:System.out.println( "D" );break ;default :System.out.println( 0 );}}
}

巧用break

输出2023年指定月份的最大天数·这里可以替换年份。

package com.item.action;public class Main {public static void main(String args[]) {int year = 2023;int month = 2;int day = 0;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 2:boolean b = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;day = b ? 29 : 28;break;case 4:case 6:case 9:case 11:day = 30;break;}System.out.println(day);}
}

石头剪刀布 测试代码:

这里我用的是String当做switch的判断。

package com.item.action;import java.util.Scanner;public class Main {public static void main(String args[]) {int inp = 0; // 定义输入的数值String sRnd = ""; // 随机数表示出拳int numWin = 0; // 胜场int numLost = 0; // 负场Scanner sc = new Scanner(System.in);while (true) {boolean flag = true; // 立个flag备用int rnd = (int) (1 + Math.random() * 3);System.out.print("请输入【剪刀】、【石头】或【布】,输入【退出】结束游戏:");String sInp = sc.next();switch (sInp) {// 输入文字转数字case "剪刀":inp = 1;break;case "石头":inp = 2;break;case "布":inp = 3;break;case "退出":System.out.println("您已退出!\n ");return;default:System.out.println("输入有误! \n");// 输入错误时flag为假flag = false;break;}switch (rnd) {// 随机数转换成出拳case 1:sRnd = "剪刀";break;case 2:sRnd = "石头";break;case 3:sRnd = "布";break;default:break;}if (flag == false) {// 前面立的flag为假了,跳过这次循环continue;} else if (inp == rnd) {System.out.println("平局! 电脑也是" + sRnd + " 胜" + numWin + "负" + numLost + "\n");} else if (inp == 1 && rnd == 3 || inp == 2 && rnd == 1 || inp == 3 && rnd == 2) { // 列出所有胜局情况System.out.println("你赢了!电脑是" + sRnd + " 胜" + ++numWin + "负" + numLost + "\n");} else {System.out.println("电脑胜!电脑是 " + sRnd + " 胜" + numWin + "负" + ++numLost + "\n"); // 其他都是负局情况}if(numWin==2||numLost==2) {break;}}sc.close();}
}

三局两胜制度。

 

 


http://www.ppmy.cn/news/3348.html

相关文章

单片机扫盲

一、从电路到集成电路 集成电路:使用微器件为“积木”,去搭建一个具备一定功能的电路板 微器件出现之前,一个电路功能需要很大一块电路板才能实现,有了微器件电路板的体积可以降到mm级别。 IC芯片就是将电路的所有微器件集成到一…

为什么 Google 总是在不断地关闭产品呢?

当听说 Google Reader 关闭的消息时,我感到万分震惊。我非常喜欢这个产品,就像喜欢微软的 Excel 一样,因为我感觉这两款产品赋予了我超能力。我可以通过 Reader 掌握网上的最新信息,无论发布者的频率有多高都不会错过。 这些年来…

关于sysdiag的利用

背景 因为之前装了某绒,某绒又有一个比较好用的ark工具某绒🗡,想着应该有机会利用一下它的驱动。 接着在driver下面找到了它的驱动,简单分析了一下,发现有可以利用的ioctl。这里有duphandle,操作和之前的p…

通信基站安装步骤

基站设备安装步骤(移动通信基站施工过程),并说明施工要点和注意事项。 安装机柜流程。安装电源线和系统接地。 安装电源机柜时应直流配电柜接出-48V直流电源至RNC810机柜和NodeB机柜顶端配线盒。 将保护地线接至机柜接地螺栓上并紧固螺栓。 天馈系统安装。 天馈系统安装前的…

rk3399-uboot2017-增加串口通信

一、主要还是解决这个问题,最后没办法,只能进行串口通信,来识别屏幕的类型了。 基本步骤如下: 1. uboot阶段发送串口指令,等待串口回复数据,根据数据识别屏幕类型 2.在bootargs增加一个自定义的参数&…

类的六个默认成员函数

1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下,都会自动生成下面6个默认成员函数。 2.构造函数 构造函数是一个特殊的成员函数,名字与…

[附源码]Node.js计算机毕业设计房屋中介管理信息系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

对数据库索引的理解以及索引在MySQL中的数据结构

引言 索引在本质上相当于书的目录,通过目录就可以快速的找到某个章节对应的位置。索引的效果,就是加快了查找的速度。日常进行数据库的操作,一般地都是进行增删查改,而在很多场景中,进行查找的概率要比增删改大很多。…