C++学习第七课:控制程序流程的学习和示例详解

news2025/4/14 22:36:48

在这里插入图片描述

C++学习第七课:控制程序流程

在C++中,控制程序流程是编程逻辑的核心部分,它决定了程序的执行顺序。本课我们将介绍C++中的各种控制流程语句,包括条件语句、循环语句以及如何使用它们遍历多维数组和计算斐波那契数列。

控制流程语句

if...else 语句

用于基于条件执行不同的代码块。

int a = 10;
if (a > 5) {
    std::cout << "a is greater than 5" << std::endl;
} else {
    std::cout << "a is less than or equal to 5" << std::endl;
}

有条件的 if

if 语句可以是有条件的,这意味着它仅在给定条件为真时执行代码块。

if (condition) {
    // 当条件为真时执行
}

嵌套的 if...else

if 语句可以嵌套在另一个 ifelse 语句中,以创建更复杂的逻辑。

if (a > 5) {
    if (a < 10) {
        std::cout << "a is between 5 and 10" << std::endl;
    }
} else {
    std::cout << "a is less than or equal to 5" << std::endl;
}

switch-case 语句

用于根据变量的值执行不同的代码块。

char grade = 'A';
switch (grade) {
    case 'A': std::cout << "Excellent"; break;
    case 'B': std::cout << "Good"; break;
    case 'C': std::cout << "Average"; break;
    default: std::cout << "Fail"; break;
}

三元运算符 ?:

一个简化的条件表达式,格式为 condition ? value_if_true : value_if_false

int max = (a > b) ? a : b;

goto 语句

允许程序跳转到程序中标记的另一部分,通常不推荐使用,因为它可能导致代码难以理解和维护。

goto end; // 跳转到标记为end的位置
end:
std::cout << "This is the end of the program" << std::endl;

while 循环

重复执行代码块,直到条件不为真。

int i = 0;
while (i < 5) {
    std::cout << i << " ";
    i++;
}

do...while 循环

至少执行一次代码块,然后重复执行,直到条件不为真。

int i = 0;
do {
    std::cout << i << " ";
    i++;
} while (i < 5);

for 循环

一种更常见的循环结构,常用于遍历数组。

for (int i = 0; i < 5; i++) {
    std::cout << i << " ";
}

continuebreak

  • continue 跳过当前循环的剩余部分,并立即开始下一次循环。
  • break 立即退出循环。
for (int i = 0; i < 5; i++) {
    if (i == 2) continue; // 跳过2
    if (i == 3) break; // 退出循环
    std::cout << i << " ";
}

无限循环和控制循环

无限循环可以使用 while (while (true)) 或 for (for (;;)) 来实现。

while (true) {
    // 永远执行的代码
}

遍历多维数组

使用嵌套循环可以遍历多维数组。

int multiArray[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << multiArray[i][j] << " ";
    }
    std::cout << std::endl; // 换行
}

计算斐波那契数列

斐波那契数列是每一项都是前两项和的数列,通常定义为:F(0) = 0, F(1) = 1, 且对于 n > 1, 有 F(n) = F(n-1) + F(n-2)。

#include <iostream>

int main() {
    int n = 10; // 计算斐波那契数列的前10项
    int first = 0, second = 1;

    std::cout << first << " " << second << " "; // 输出前两项

    for (int i = 2; i < n; i++) {
        int next = first + second;
        std::cout << next << " ";
        first = second;
        second = next;
    }

    std::cout << std::endl;
    return 0;
}

结语

通过本课的学习,你了解了C++中的控制流程语句,包括条件语句、循环语句、特殊语句(如 continuebreak)以及如何使用它们遍历多维数组和计算斐波那契数列。

控制流程语句是编程中不可或缺的部分,它们允许你根据程序的需要控制程序的执行流程。掌握这些基础知识对于编写结构良好、逻辑清晰的程序至关重要。

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

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

相关文章

哪个牌子的骨传导耳机好用?盘点五款高热度爆款骨传导耳机推荐!

近年来&#xff0c;骨传导耳机在潮流的推动下销量节节攀升&#xff0c;逐渐成为运动爱好者和音乐迷们的必备装备。但热度增长的同时也带来了一些品质上的忧患&#xff0c;目前市面上的部分产品&#xff0c;存在佩戴不舒适、音质不佳等问题&#xff0c;甚至可能对听力造成潜在损…

VSCode SSH连接远程主机失败,显示Server status check failed - waiting and retrying

vscode ssh连接远程主机突然连接不上了&#xff0c;终端中显示&#xff1a;Server status check failed - waiting and retrying 但是我用Xshell都可以连接成功&#xff0c;所以不是远程主机的问题&#xff0c;问题出在本地vscode&#xff1b; 现象一&#xff1a; 不停地输入…

Python俄罗斯方块

文章目录 游戏实现思路1. 游戏元素的定义2. 游戏区域和状态的定义3. 游戏逻辑的实现4. 游戏界面的绘制5. 游戏事件的处理6. 游戏循环7. 完整实现代码 游戏实现思路 这个游戏的实现思路主要分为以下几个步骤&#xff1a; 1. 游戏元素的定义 Brick类&#xff1a;表示游戏中的砖…

使用Tortoise 创建远程分支

1。首先创建本地分支branch1&#xff0c;右键tortoise git->创建分支&#xff0c;输入分支名称branch1&#xff0c;确定。 2。右键tortoise git->推送&#xff0c;按下图设置&#xff0c;确定&#xff0c;git会判断远程有没有分支branch1&#xff0c;如果没有会自动创建…

QT类之间主窗口子窗口传递*指针对象

1.新建CFile_Operation 类文件 2.主窗口头文件声明&#xff1a; CFile_Operation *cfile_operation; 按钮点击事件函数里面调用子窗口 dialog_debug new Dialog_Debug(this);connect(this,&MainWindow_oq::SendCfile_operation_Obj,dialog_debug,&Dialog_Debug::R…

【redis】初始redis和分布式系统的基本知识

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Linux中ssh登录协议

目录 一.ssh基础 1.ssh协议介绍 2.ssh协议的优点 3.ssh文件位置 二.ssh原理 1.公钥传输原理&#xff08;首次连接&#xff09; 2.ssh加密通讯原理 &#xff08;1&#xff09;对称加密 &#xff08;2&#xff09;非对称加密 3.远程登录 三.服务端的配置 常用的配置项…

C++信息学奥赛 数据结构认识

数据结构 1.1数据结构分类 1.2基本数据类型 1.3数字编码 1.4字符编码 1.1数据结构分类 数据结构如同一副稳固而多样的框架。为数据的有序组织提供了蓝图&#xff0c;算法得以在此基础上生动起来。 常用的数据结构包括哪些 &#xff0c; &#xff0c; &…

QA测试开发工程师面试题满分问答21: 单元测试、集成测试、系统测试的侧重点是什么?

单元测试、集成测试和系统测试是软件测试中的不同层次和阶段&#xff0c;每个阶段侧重于不同的测试目标和范围。以下是它们的侧重点的简要说明&#xff1a; 单元测试&#xff1a; 单元测试是针对软件中最小的可测试单元&#xff08;通常是函数、方法或模块&#xff09;进行的测…

版本控制系统-Git

目录 1. Git简介 2. 下载及安装 3.命令行操做 3.1全局设置 3.2初始化仓库 3.3提交代码 3.4查看提交历史 3.5推送代码 3.6拉取合并代码 3.7克隆仓库 3.8. 配置忽略文件 3.9. 凭据管理 4. GUI工具操作 4.1. 全局设置 4.2. 初始化仓库 4.3. 提交代码 输入提交日志…

Gone框架介绍3 - 使用gone命令,自动生成Priest函数

文章目录 1. 安装辅助工具: gone2. 创建一个名为gen-code的新项目3. 创建Goner4. 使用辅助工具5. 添加main函数 我在两年前实现了一个Golang的依赖注入框架&#xff0c;并且集成了gin、xorm、redis、cron、消息中间件等功能&#xff0c;自己觉得还挺好用的&#xff1b;之前一直…

Jenkins首次Build,配置Git,Maven,JDK,凭证管理

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudso…

有哪些好用电脑端时间定时软件?桌面日程安排软件推荐 桌面备忘录

随着现代生活节奏的加快&#xff0c;人们对于时间管理和任务提醒的需求越来越大。为了满足这一需求&#xff0c;市场上涌现出了众多桌面便签备忘录软件&#xff0c;它们不仅可以帮助我们记录待办事项&#xff0c;还能定时提醒我们完成任务。在这篇文章中&#xff0c;我将为大家…

宝子们,到我选Offer了

A. 腾讯IEG光子 游戏客户端 Base 深圳 优点&#xff1a; 1. Title可以&#xff0c;是IEG正经游戏工作室 2. 这可是鹅啊&#xff0c;可以吟唱《作废》歌 缺点&#xff1a; 1. 离得远 要租房 2. 5000HC 转正率懂得都懂 3. 可能会参与预研的东西 不会很快参与…

HaLo-NeRF:利用视觉和语言模型对场景的精准定位和细粒度语义理解

包含大量摄影师拍摄的照片的互联网图像集有望实现对大型旅游地标的数字探索。然而&#xff0c;先前的工作主要集中在几何重建和可视化上&#xff0c;忽略了语言在为导航和细粒度理解提供语义界面方面的关键作用。 项目&#xff1a;HaLo-NeRF: Learning Geometry-Guided Semant…

Ansible自动化运维工具主机清单配置

作者主页&#xff1a;点击&#xff01; Ansible专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月24日12点21分 Ansible主机清单文件用于定义要管理的主机及其相关信息。它是Ansible的核心配置文件之一&#xff0c;用于Ansible识别目标主机并与其建立连接。 …

win10安装DHCP服务--用于2台机器之间搭建简易网络来进入目标机器修改配置

前言&#xff1a; 客户多了&#xff0c;往往会出现各种突发情况。 比如一个客户现场没有DHCP&#xff0c;没有显示器&#xff0c;键盘。 你只有一台笔记本的情况下要配置目标机器的网络。要如何配置&#xff1f;&#xff1f; 这时候就可以使用这篇博客提供的方式了。 Windows…

分布式与一致性协议之CAP和Paxos算法(一)

CAP 理论 如何使用BASE理论 以InfluxDB系统中DATA节点的集群实现为例。DATA节点的核心功能是读和写&#xff0c;所以基本可用是指读和写的基本可用。我们可以通过分片和多副本实现读和写的基本可用。也就是说&#xff0c;将同一业务的数据先分片&#xff0c;再以多份副本的形…

STM32驱动SYN6288语音合成模块

STM32驱动SYN6288语音合成模块 简介功能特点通讯方式接线代码结果总结 简介 SYN6288通过异步串口(UART) 通讯方式&#xff0c;接收待合成的文本数据&#xff0c;从而实现文本到语音的转换SYN06188 语音芯片的优秀特点:最小SS0P28L 贴片封装、硬件接口简单、低功耗、音色清亮圆…

C++中auto关键字的用法详解

1.简介 auto作为一个C语言就存在的关键字&#xff0c;在C语言和C之间却有很大区别。 在C语言中auto修饰的变量&#xff0c;是具有自动存储器的局部变量&#xff0c;但因为局部变量默认类别默认是auto修饰导致一直没有人去使用它。 C11中&#xff0c;标准委员会赋予了auto全新…