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

switch缺少break出现bug

bug代码

void input() {cin >> direction;switch (direction) {case 'w':newpr--;//行--break;case 's':newpr++;//行++break;/*bug代码	*///case 'a'://	newpc--;//列--/*解决bug	*/case 'a':newpc--;break;case 'd':newpc++;//列++break;case 'q':cout << "你确定退出吗?(Y/N)" << endl;cin >> direction;//合理利用if (direction == 'Y') {gameOver = true;}break;}
}

bug原因分析:

        在 input() 函数的 switch 语句中,case 'a' 分支缺少 break 语句,导致逻辑错误:

case 'a':newpc--;//列--
case 'd':newpc++;//列--break;

        当输入 'a' 时,程序会先执行 newpc--(向左移动),但由于没有 break,会继续执行下一个 case 'd' 的 newpc++(向右移动)。两次操作相互抵消,导致 newpc 最终没有变化,表现为无法向左移动

        而输入 'd' 时,虽然能正常执行 newpc++,但用户可能因 'a' 无效而误以为 'd' 也有问题(实际 'd' 逻辑本身可行,但受 'a' 影响整体左右移动异常)。

Bug 解决方案

        在 case 'a' 分支末尾添加 break 语句,确保每个分支逻辑独立执行:

http://www.dtcms.com/a/393600.html

相关文章:

  • 【自然语言处理】(3) --RNN循环神经网络
  • C# 中的 ReferenceEquals 方法
  • BERT:用于语言理解的深度双向Transformer预训练【简单分析】
  • 力扣hot100:两数相加(模拟竖式加法详解)(2)
  • Zotero + Word 插件管理参考文献的引用
  • 用Python一键整理文件:自动分类DOCX与PDF,告别文件夹杂乱
  • Ubuntu部署Elasticsearch教程
  • 61.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--提取金额
  • 一款基于 .NET 开源、免费、命令行式的哔哩哔哩视频内容下载工具
  • Win Semi宣布推出线性优化的GaN工艺
  • 考研408计算机网络2025年第38题真题解析
  • C++编写的经典贪吃蛇游戏
  • 风险预测模型原理
  • PS练习5:利用翻转制作图像倒影
  • 平替Jenkins,推荐一款国产开源免费的CICD工具 - Arbess
  • aws 实战小bug
  • NumPy 系列(一):numpy 数组基础
  • VSCode 的 launch.json 配置
  • OpenLayers地图交互 -- 章节六:范围交互详解
  • 分布式专题——15 ZooKeeper特性与节点数据类型详解
  • 分布式专题——16 ZooKeeper经典应用场景实战(上)
  • Torch-Rechub学习笔记-task2
  • Hadoop分布式计算平台
  • hive调优系列-1.调优须知
  • 爆炸特效:Unity+Blender-01
  • 解决切换 Node 版本后 “pnpm 不是内部或外部命令”问题
  • flag使用错误出现bug
  • 【Kafka面试精讲 Day 20】集群监控与性能评估
  • SQL 注入攻防:绕过注释符过滤的N种方法
  • 微软常用运行库