第3天:C++控制语句 - 条件与循环

第3天:C++控制语句 - 条件与循环

一、今日学习目标

  1. 🎯 掌握条件判断语句(if-else/switch-case)
  2. 🔄 理解循环结构(while/for)
  3. 🧩 完成猜数字游戏实战
  4. 🛠️ 学会嵌套循环与条件组合

二、核心知识点详解

1. 条件判断分支

if-else结构
if (条件表达式) {
    // 执行语句块
} else {
    // 条件不成立时执行
}
switch-case结构
switch (变量) {
    case 常量表达式:
        // 执行语句
        break;
    // 可以省略default分支
}

2. 循环结构

while循环
while (条件表达式) {
    // 循环体
}
for循环
for (初始化; 条件; 更新) {
    // 循环体
}

三、实战演练:猜数字游戏

1. 游戏规则

🔍 程序随机生成1-100之间的数字
👤 用户输入猜测值
💡 提示"太大/太小"直到猜中为止
🎉 显示猜测次数

2. 实现步骤

#include <iostream>
#include <cstdlib> // 用于rand()
#include <ctime>  // 用于srand()
using namespace std;

int main() {
    srand(time(0)); // 初始化随机数种子
    int target = rand() % 100 + 1;
    int guess = 0;
    int attempts = 0;
    
    cout << "🎲 猜数字游戏(1-100)" << endl;
    
    while (guess != target) {
        cout << "请输入你的猜测:" << endl;
        cin >> guess;
        attempts++;
        
        if (guess < target) {
            cout << "太小了!" << endl;
        } else if (guess > target) {
            cout << "太大了!" << endl;
        }
    }
    
    cout << "🎉 猜对了!数字是" << target << endl;
    cout << "用了" << attempts << "次尝试!" << endl;
    
    return 0;
}

四、进阶技巧

1. 循环控制语句

break;    // 跳出当前循环
continue; // 跳过本次循环,继续下一次

2. 无限循环设计

while (true) {
    // 需要配合break使用
}

3. 嵌套循环示例(打印九九乘法表)

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        cout<< j << "*"<< i << "=" << i*j << "\t";
    }
    cout << endl;
}

五、常见问题解答

❓ ​**Q:switch-case能否处理浮点数比较?**​
→ 不可以!只能比较整型和枚举类型

​Q:for循环的三个表达式可以省略吗?​
→ 可以,但需注意:

int i = 0;
while (++i < 10); // 此时循环条件和更新合并

六、今日总结

✅ 掌握要点:

  • 🌈 条件判断的两种实现方式
  • 🔄 三种循环结构的用法
  • 💡 随机数生成与游戏设计思路
  • 🛠️ 嵌套循环的实际应用场景

⏳ 明日预告:

  • 函数的定义与调用(参数传递/返回值)

七、课后挑战任务

  1. 🌟 改进猜数字游戏:
  • 添加次数限制(最多5次)
  • 给出范围提示(如"数字在50-100之间")
  1. 🔍 尝试用for循环输出:
  • 斐波那契数列前20项
  • 倒三角形图案
  1. 📝 总结控制语句的注意事项(如循环变量初始化)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内容中台是什么?内容管理平台解析

内容中台的核心价值 现代企业数字化转型进程中&#xff0c;内容中台作为中枢系统&#xff0c;通过构建统一化的内容管理平台实现数据资产的高效整合与智能调度。其核心价值体现在打破传统信息孤岛&#xff0c;将分散于CRM、ERP等系统的文档、知识库、产品资料进行标准化归集&a…

多模态人物视频驱动技术回顾与业务应用

一种新的商品表现形态&#xff0c;内容几乎存在于手淘用户动线全流程&#xff0c;例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力&#xff0c;能够从供给端缓解内容生产成本高的问题&#xff0c;通过源源不断的低成本供给倒推…

additional-spring-configuration-metadata.json实现springboot自定义提示

在配置additional-spring-configuration-metadata.json文件后&#xff0c;在开发人员的IDE工具使用个人编写的配置读取很有效的在application.properties或application.yml文件下完成提示。 配置元数据文件位于jar下面。 META-INF/spring-configuration-metadata.json它们使用简…

使用vscode导出Markdown的PDF无法显示数学公式的问题

我的硬件环境是M2的MacBook air&#xff0c;在vscode中使用了Markdown PDF来导出md文件对应的PDF。但不管导出html还是PDF文件&#xff0c;数学公式都是显示的源代码。 我看了许多教程&#xff0c;给的是这个方法&#xff1a;在md文件对应的html文件中加上以下代码&#xff1a…

SpringBoot3—快速入门

一、简介 &#xff08;1&#xff09;前置知识 Java17Spring、SpringMVC、MyBatisMaven、IDEA &#xff08;2&#xff09;环境要求 &#xff08;3&#xff09;SpringBoot3是什么 核心概念&#xff1a;Spring Boot 底层是 Spring&#xff0c;能简单、快速地创建一个独立的、生…

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…

AWS S3 如何设置公开访问权限?

1.让整个bucket都有公开访问权限 1.1关闭【阻止公共读】 1.2关闭ACL访问控制 1.3打开桶策略 这样桶内所有的图片就能访问了 2.只开放特定文件让其具有访问权限&#xff1f; 2.1关闭【阻止公共读】 如之前的图示 2.2打开ACL控制 2.3单个文件打开公共读

深入了解 Python 中的 MRO(方法解析顺序)

文章目录 深入了解 Python 中的 MRO&#xff08;方法解析顺序&#xff09;什么是 MRO&#xff1f;如何计算 MRO&#xff1f;C3 算法的合并规则C3 算法的合并步骤示例&#xff1a;合并过程解析 MRO 解析失败的场景使用 mro() 方法查看 MRO示例 1&#xff1a;基本用法 菱形继承与…

二、IDE集成DeepSeek保姆级教学(使用篇)

各位看官老爷好&#xff0c;如果还没有安装DeepSeek请查阅前一篇 一、IDE集成DeepSeek保姆级教学(安装篇) 一、DeepSeek在CodeGPT中使用教学 1.1、Edit Code 编辑代码 选中代码片段 —> 右键 —> CodeGPT —> Edit Code, 输入自然语言可编辑代码&#xff0c;点击S…

一劳永逸解决vsocde模块import引用问题

这里写目录标题 原因解决方案 原因解决方案 原因&#xff1a; VSCode中需要显式地声明PYTHONPATH&#xff0c;不然根本找不到本项目内的模块和包的路径。 解决方法&#xff0c;加入到setting。json里当前Project路径&#xff0c;以后运行就自动添加了&#xff1a; 打开设置 …

网页制作10-html,css,javascript初认识の适用XHTML

一、简介&#xff1a; Xhtml是extensible hypertext markup language的缩写。它是由国际W3C组织制定并公布发行的。是一个过渡技术&#xff0c;结合了部分xml的强大功能及大多数html的简单特性。 Advantage. Xhtml提倡更简洁规范的代码。 Xhtml.文档在旧的基于的浏览器中&…

[原创]openwebui解决searxng通过接口请求不成功问题

openwebui 对接 searxng 时 无法查询到联网信息&#xff0c;使用bing搜索&#xff0c;每次返回json是正常的 神秘代码&#xff1a; http://172.30.254.200:8080/search?q北京市天气&formatjson&languagezh&time_range&safesearch0&languagezh&locale…

Joycon-Robotics库的安装报错解决记录

Joycon-Robotics: Nintendo Switch Joy-Con for Robotics 今天遇到一个小bug&#xff0c;就算在安装joycon-robotic库的时候&#xff1a; cd joycon-robotic pip install -e . 上面这2行指令无误&#xff0c;但是&#xff1a; make install 这个指令报错&#xff0c;error如下…

结构型模式--组合模式

概念 组合人模式是结构型设计模式的一种&#xff0c;主要是用于解决代码中出现类像树一样进行组合而出现的组合结构的相关操作问题。使其树中的任意一个节点&#xff08;无论是子节点还是父节点&#xff09;都可以使用同一套接口进行操作。 使用场景 1、如果希望我们对象组合…

《Effective Objective-C》阅读笔记(下)

目录 内存管理 理解引用计数 引用计数工作原理 自动释放池 保留环 以ARC简化引用计数 使用ARC时必须遵循的方法命名规则 变量的内存管理语义 ARC如何清理实例变量 在dealloc方法中只释放引用并解除监听 编写“异常安全代码”时留意内存管理问题 以弱引用避免保留环 …

Idea编译项目很久之后,提示 Error:java:OutOfMemoryError:insufficient memory

项目挺老的的了&#xff0c;平常项目启动&#xff0c;也要挺久的&#xff0c;但是最起码能启动成功&#xff0c;今天下午的时候&#xff0c;项目启动了十几分&#xff0c;一直在转圈&#xff0c;后面控制台输出了这一行异常 Error:java:OutOfMemoryError:insufficient memory …

MySQL 数据增删改查

一、插入数据 1.1 insert插入数据 &#xff08;1&#xff09;insert语法格式 INSERT [INTO] 表名 [字段名] VALUES (值列表);&#xff08;2&#xff09;示例 ① 向学生表中插入一行数据 ② 向学生表中插入多行数据 二、更新数据 2.1 update更新数据 &#xff08;1&…

基于flask+vue框架的的医院预约挂号系统i1616(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,医生,科室信息,就诊信息,医院概况,挂号信息,诊断信息,取消挂号 开题报告内容 基于FlaskVue框架的医院预约挂号系统开题报告 一、研究背景与意义 随着医疗技术的不断进步和人们健康意识的日益增强&#xff0c;医院就诊量逐年增加。传统的现场…

专业的UML开发工具StarUML

专业的UML开发工具StarUML 可靠的软件建模软件StarUML StarUML 是一款支持统一建模语言 (UML)框架的开源建模软件。它提供了几种类型的图表&#xff0c;并允许用户生成多种语言的代码。在它的帮助下&#xff0c;软件开发人员可以创建设计、概念和编码解决方案。但是&#xff0…

转化率(漏斗分析)——mysql计算过程

转化率(漏斗分析)——mysql计算过程 问题&#xff1a;有一张表&#xff0c;记录了不同用户的用户id&#xff0c;浏览页面时间&#xff0c;加入购物车时间&#xff0c;下单时间&#xff0c;支付时间&#xff0c;算出每天的各个环节的转化率 创建表info(含用户id&#xff0c;浏…