C++青少年简明教程:switch语句

C++青少年简明教程:switch语句

在C++中,switch语句用于基于一个表达式的值来执行不同的代码块。这个表达式通常是一个整数类型(如int,char,或枚举类型),并且case标签必须是整数常量表达式。

语法格式:

switch(表达式){

    case 常量表达式1:

        语句1;

        [break;]

    case 常量表达式2:

        语句2;

        [break;]

    case 常量表达式3:

        语句3;

        [break;]

    ......

    [default:

        语句k;

        [break;]]

}

switch语句执行流程图:

或者

这两个switch语句执行流程图是等价的。

例、使用 switch 语句来根据用户输入的数字表示的星期几,打印出对应的星期几的文本。

#include <iostream>
using namespace std;int main() {int day;cout << "请输入星期几(用数字表示,1-7):";cin >> day;switch(day) {case 1:cout << "星期一" << endl;break;case 2:cout << "星期二" << endl;break;case 3:cout << "星期三" << endl;break;case 4:cout << "星期四" << endl;break;case 5:cout << "星期五" << endl;break;case 6:cout << "星期六" << endl;break;case 7:cout << "星期日" << endl;break;default:cout << "无效的输入" << endl;}return 0;
}

当用户输入一个数字时,将会根据相应的 case 打印出对应的星期几。如果用户输入的数字不在 1-7 的范围内,则执行 default 下的代码块,打印出 "无效的输入"。

前一节母子约定问题,改用switch语句:

#include <iostream>
using namespace std;int main() {int fenshu;cout << "请输入考试分数:";cin >> fenshu;switch(fenshu/10) {case 10:cout << "暑假不用写作业";break;case 9:cout << "奖励100元零花钱";break;case 8:cout << "奖励10元零花钱";break;case 7:cout << "没奖励";break;case 6:cout << "暑假不能玩电子游戏";break;default:cout << "会发生可怕的事情...";       		} return 0;
}

前一节母子约定问题,改用switch语句:

#include <iostream>
using namespace std;int main() {int fenshu;cout << "请输入考试分数:";cin >> fenshu;switch(fenshu/10) {case 10:cout << "暑假不用写作业";break;case 9:cout << "奖励100元零花钱";break;case 8:cout << "奖励10元零花钱";break;case 7:cout << "没奖励";break;case 6:cout << "暑假不能玩电子游戏";break;default:cout << "会发生可怕的事情...";       		} return 0;
}

提示,这个代码首先将分数除以10,得到一个整数——将连续的分数范围映射到离散的整数值,从而在switch语句中进行等级判断。这是一种编程技巧。

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

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

相关文章

香橙派Kunpeng Pro测评:他给的实在太多了

文章目录 一、开箱环节1、包装配置2、开发板包装3、开发板3.1、开发版正面3.2、开发板背面 二、硬件配置1、硬件配置清单 2、配置图解 三、开机~启动&#xff01;1、运行系统1.1、外设配置1.2、系统启动1.3、官方教程 2、openEuler系统概览 四、系统测试1、性能测试1.1、安装sy…

【附代码案例】深入理解 PyTorch 张量:叶子张量与非叶子张量

在 PyTorch 中&#xff0c;张量是构建神经网络模型的基本元素。了解张量的属性和行为对于深入理解模型的运行机制至关重要。本文将介绍 PyTorch 中的两种重要张量类型&#xff1a;叶子张量和非叶子张量&#xff0c;并探讨它们在反向传播过程中的行为差异。 叶子张量与非叶子张…

【CV】视频图像背景分割MOG2,KNN,GMG

当涉及背景分割器&#xff08;Background Subtractor&#xff09;时&#xff0c;Mixture of Gaussians&#xff08;MOG2&#xff09;、K-Nearest Neighbors&#xff08;KNN&#xff09;和Geometric Multigid&#xff08;GMG&#xff09;是常用的算法。它们都用于从视频流中提取…

漫步者x1穷鬼耳机双耳断连

困扰了我两天&#xff0c;终于有时间解决这个问题了&#xff0c;查看了一堆都是别的型号。怎么没人用这个啥按键都没有的耳机QAQ&#xff0c;幸好给我找到了说明书&#xff0c;啊哈哈&#xff01; 说明书地址

堆结构知识点复习——玩转堆结构

前言:堆算是一种相对简单的数据结构&#xff0c; 本篇文章将详细的讲解堆中的知识点&#xff0c; 包括那些我们第一次学习堆的时候容易忽略的内容&#xff0c; 本篇文章会作为重点详细提到。 本篇内容适合已经学完C语言数组和函数部分的友友们观看。 目录 什么是堆 建堆算法…

与神对话-1

背景 那段时间&#xff0c;我的个人生活、职业和感情方面都很不愉快&#xff0c;我觉得我的生活方方面面全都失败了。多年来&#xff0c;我已经习惯于用信写下自己的思想&#xff08;我从未想过寄给谁&#xff09;&#xff0c;我拿起我那忠实的黄颜色的本子&#xff0c;并开始…

电脑找不到opencl.dll原因分析及5种详细的解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到opencl.dll”。这通常意味着计算机中缺少或损坏了与OpenCL&#xff08;开放计算语言&#xff09;相关的动态链接库文件。OpenCL允许应用程序利用图形处理器&#xff08;GPU&#xff…

【问题记录】QT“类型强制转换“:无法从“ATL::CString“转换为“LPCWSTR“

一&#xff0c;问题现象 环境&#xff1a;VS2019QT 报错提示&#xff1a;“类型强制转换”&#xff1a;无法从"ATL::CString"转换为"LPCWSTR" 二&#xff0c;解决方法 打开项目属性&#xff0c;设置字符集&#xff0c;如下所示&#xff1a;

BFS解决最短路问题(详解)

目录 BFS简介 && 框架&#xff1a; 一.二叉树的最小深度 二&#xff1a;迷宫中里入口最近的出口&#xff1a; 三.最小基因变化: 四&#xff1a;单词接龙&#xff1a; ​五&#xff1a;为高尔夫比赛砍树&#xff1a; BFS简介 && 框架&#xff1a; 说到BFS…

动态规划-卡特兰数

不同的二叉搜索树&#xff08;96&#xff09; 题目描述: 状态表示: 建立一维数组dp&#xff0c;使用dp[i]来表示i个节点时有的二叉搜索树种类。 状态转移方程: 因为dp[i]表示有i个节点&#xff0c;我们设置一个循环&#xff0c;循环下标为j&#xff0c;此时j代表第几个节点为…

STM32Cube系列教程10:STM32CubeIDE工程创建+串口DMA+IDLE+printf重定向+软中断处理串口数据+非阻塞延时任务

文章目录 工程配置配置时钟配置Debug接口配置串口外设配置时钟树生成代码 配置串口重定向printf配置串口&#xff0c;开启IDLE&#xff0c;开启软中断 配置非阻塞延时任务调度函数编写任务调度函数延时任务创建 编译&#xff0c;下载与测试编译下载测试 前两天收到了ST社区的NU…

关于智能汽车的一些思考

当前智能汽车上一般配置有12路超声波雷达&#xff0c;这些专用超声波雷达内置了MCU&#xff0c;直接输出数字化的测距结果&#xff0c;一般硬件接口采用串口RS485&#xff0c;通信协议采用modbus。 一、RS485与RS232&#xff08;UART&#xff09;有什么不同&#xff1f; 1.接…

5.27周报

这两周邻近毕业故没有很多时间来学习课余内容&#xff0c;另外最近身体有些不舒服【偏头痛】&#xff0c;所以学的内容不多&#xff0c;包括SVM向量机和ResNet【不包括代码复现】 1.SVM支持向量机的大概内容 1、目的&#xff1a; 主要内容是如何找到分类的那条线【超平面】—…

我的世界开服保姆级教程

前言 Minecraft开服教程 如果你要和朋友联机时&#xff0c;可以选择的方法有这样几种&#xff1a; 局域网联机&#xff1a;优点&#xff1a;简单方便&#xff0c;在MC客户端里自带。缺点&#xff1a;必须在同一局域网内。 有些工具会带有联机功能&#xff1a;优点&#xff1a;一…

Transformer详解(5)-编码器和解码器

1、Transformer编码器 import torch from torch import nn import copy from norm import Norm from multi_head_attention import MultiHeadAttention from feed_forward import FeedForward from pos_encoder import PositionalEncoderdef get_clones(module, N):"&quo…

【GateWay】自定义RoutePredicateFactory

需求&#xff1a;对于本次请求的cookie中&#xff0c;如果userType不是vip的身份&#xff0c;不予访问 思路&#xff1a;因为要按照cookie参数进行判断&#xff0c;所以根据官方自带的CookieRoutePredicateFactory进行改造 创建自己的断言类&#xff0c;命名必须符合 xxxRout…

整理前端新出的操作工具好用又好玩(Custom Formatter,Oxlint,Nuxt DevTools,component-party)

1.使用Custom Formatter 使vue3中的reactive object 在Chrome在console中更易理解的方式展现 启用步骤&#xff1a; 1.打开控制台&#xff0c;然后打开console设置 2.前往proferences中的Console&#xff0c;勾选Enable custom formatters选项 3.刷新页面 2.使用css Overv…

FreeRtos进阶——关于任务的深入探究

创建任务函数 在我们创建任务中&#xff0c;会有几个比较神奇的参数&#xff0c;例如函数名称&#xff0c;以及栈大小。在我们创建任务时&#xff0c;也相应的要为每一个任务创建栈。这里面的栈除了用于任务数组开辟的空间外&#xff0c;还可以用于保存现场&#xff0c;例如有S…

手把手从0到1教你做STM32+FreeRTOS智能家居--第11篇之步进电机

一、硬件设计 步进电机介绍 本项目用到的是常见的也是控制起来最简单的步进电机&#xff1a;五线四项的步进电机28BYJ-48。 单片机IO口输出电流太小无法直接驱动电机运行&#xff0c;在这里我们需要另外加一个电机驱动板。可以选择ULN2003电机驱动板。 步进电机的控制原理 …

JAVA面试题大全(十三)

1、Mybatis 中 #{}和 ${}的区别是什么&#xff1f; 在 MyBatis 中&#xff0c;#{} 和 ${} 是两种用于参数绑定的方式&#xff0c;它们之间的主要区别在于数据处理的方式和 SQL 注入的风险。 #{}&#xff1a;预编译处理 #{} 用于预编译处理&#xff0c;MyBatis 会为其生成 Prep…