news 2026/4/24 17:28:00

滴水逆向 day 12 Switch 语句

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
滴水逆向 day 12 Switch 语句

关注 0基础学逆向一起学逆向​​​​​​https://mp.weixin.qq.com/s/Qsw1eRvY51i8-XEebFfm5g

一、Switch 标准语法(固定格式)

switch (表达式) // 只能是:整数/字符/枚举,不能是浮点数、字符串 { case 常量1: // 必须是**常量**,不能是变量 执行语句; break; // 必须写!否则会“穿透”往下执行 case 常量2: 执行语句; break; default: // 所有 case 都不匹配时执行(可选) 执行语句; break; }

重点 ✅

  1. case 后面必须是常量

    (固定值,不能是变量、区间)

  2. 每个 case 尽量加 break

    不加 break 会发生穿透:匹配成功后,会一直往下执行所有代码,直到遇到 break 才停止。


二、最关键:break 穿透演示

错误代码(没写 break):

int num = 1; switch(num) { case 1: printf("A"); // 会执行 // 没有 break! case 2: printf("B"); // 也会执行! break; } // 输出结果:AB

正确代码(加break)

int num = 1; switch(num) { case 1: printf("A"); break; // 执行完立刻跳出 case 2: printf("B"); break; } // 输出结果:A

三、Switch 和 if-else 的区别

特点

switch

if-else

判断类型

只能等值判断

(固定值)

支持区间判断

(> < >=)

效率

多分支时更高效

分支多效率稍低

适用场景

值固定、分支多(菜单、选项)

范围判断、复杂条件

表达式类型

整数、char、枚举

任意布尔表达式

一句话记忆

  • 固定值选 switch
  • 区间范围选 if-else

四、完整可运行示例

#include <stdio.h> int main() { int choice = 2; switch(choice) { case 1: printf("你选择了:星期一"); break; case 2: printf("你选择了:星期二"); break; case 3: printf("你选择了:星期三"); break; default: printf("输入无效"); break; } return 0; } // 输出:你选择了:星期二

总结

  1. switch 只做等值判断

    case 必须是常量

  2. break 必须写

    防止代码穿透

  3. 多固定值分支用 switch,区间判断用 if-else

  4. default 处理所有不匹配的情况(可选但推荐写)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 0:25:40

别再死记硬背ER图符号了!用ChatGPT+Draw.io,5分钟搞定数据库设计初稿

用ChatGPTDraw.io重构数据库设计工作流&#xff1a;从概念到可视化的智能实践 在数据库设计领域&#xff0c;实体关系图&#xff08;ER图&#xff09;一直是沟通业务需求与技术实现的桥梁。但传统ER图绘制流程存在两个痛点&#xff1a;一是设计初期需要反复确认业务规则&#x…

作者头像 李华
网站建设 2026/4/23 0:24:13

【docker】docker下如何使用宿主主机的GPU

不能直接用&#xff0c;默认隔离&#xff1b;要装 NVIDIA 容器工具包并加参数才能用宿主机 GPU。一、为什么默认不能用 Docker 容器默认用命名空间 cgroups隔离&#xff1a; 看不见 /dev/nvidia* 设备没有宿主机 CUDA 库和驱动必须靠 NVIDIA Container Toolkit 打通二、前提&a…

作者头像 李华
网站建设 2026/4/23 0:23:34

CCS12.1新功能救场:用Memory Allocation视图5分钟搞定CC8内存爆满报错

CCS12.1内存优化实战&#xff1a;可视化工具5分钟解决C2000内存溢出难题 当C2000开发者在CCS中看到"error #10099-D: program will not fit into available memory"这个红色报错时&#xff0c;传统做法往往是打开cmd文件开始手动计算内存地址——这种"盲人摸象&…

作者头像 李华
网站建设 2026/4/23 0:20:43

Wi-Fi CSI传感技术:非接触式人体活动识别原理与应用

1. Wi-Fi CSI人体活动识别技术概述Wi-Fi信道状态信息(CSI)传感技术正在重新定义非接触式人体活动识别(HAR)的技术边界。这项技术的核心在于利用无处不在的Wi-Fi信号作为感知媒介&#xff0c;通过分析2.4GHz/5GHz频段射频信号在传播过程中与人体交互产生的多径效应变化&#xff…

作者头像 李华
网站建设 2026/4/23 0:20:39

智能机器狗开发深度解析:从机械骨骼到感知大脑的技术演进之旅

智能机器狗开发深度解析&#xff1a;从机械骨骼到感知大脑的技术演进之旅 【免费下载链接】openDogV2 项目地址: https://gitcode.com/gh_mirrors/op/openDogV2 在机器人技术蓬勃发展的今天&#xff0c;构建一只能够感知环境、自主决策的智能机器狗&#xff0c;已不再是…

作者头像 李华
网站建设 2026/4/23 0:17:42

2026年AI抢人大战:这5个高薪岗位,你准备好了吗?

&#x1f525;最近科技圈最火的话题&#xff0c;非“AI抢人大战”莫属。 2026年1-2月&#xff0c;AI岗位数量同比暴涨约12倍&#xff0c;在新经济全部岗位中的占比从2.29%跃升至26.23%&#xff0c;平均月薪突破6万元&#xff0c;比新经济行业平均水平高出26%。 科锐国际2026薪酬…

作者头像 李华