C++初学者指南第一步---7.控制流(基础)

2024-06-20 06:36

本文主要是介绍C++初学者指南第一步---7.控制流(基础),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C++初学者指南第一步—7.控制流(基础)

文章目录

  • C++初学者指南第一步---7.控制流(基础)
    • 1.术语:表达式/语句
      • Expressions表达式
      • Statements语句
    • 2.条件分支
    • 3.Switching(切换):基于值的分支
    • 4.三元条件运算符
    • 5.循环迭代
      • 基于范围的循环   C++11
      • for(初始化;条件;步骤) {…}
      • while(条件) {…}
      • do {…} while(条件);

1.术语:表达式/语句

Expressions表达式

  • 一系列计算(运算符+操作数)
  • 可能会产生结果

Statements语句

  • 按顺序运行的程序片段
  • 不产生结果
  • 可以包含一个或多个表达式
  • ; 分隔,并按 { } 分组

2.条件分支

if (condition1) {// 如果condition1为真true,则执行这里的代码
}
else if (condition2) {// condition1为假false,如果condition2为真则执行这里的代码
}
else {// 否则执行这里的代码(即condition1和condition2都为假false)
}
  • 根据条件的结果执行(不执行)代码
  • 条件表达式的结果必须(可转换为)布尔值
  • 条件将从上到下进行检查
if (true)  { cout << "yes\n"; }  // yes
if (false) { cout << "yes\n"; }  // –
if (23)    { cout << "yes\n"; }  // yes (23 → true)
if (0)     { cout << "yes\n"; }  // – (0 → false)
int i = 0;
cin >> i;
if (i < 0) { cout << "negative\n"; 
} else if (i == 0) {cout << "zero\n"; 
} else {cout << "positive\n"; 
}

C++17标准增加的语法

if (语句; 条件) { ... }

用于限制临时变量的范围

int i = 0;
std::cin >> i;
if (int x = 2*i; x > 10) { cout << x; }

3.Switching(切换):基于值的分支

  • 整数类型(char、int、long、enums 等)的值
  • 从上到下检查和执行
  • 执行匹配case和下一个break(或结束}之间的所有内容) 注意这句话
int i = 0;
cin >> i;
int m = i % 5;
switch (m) {case 0:   // 如果m等于0,执行这里代码break;case 1:   // 如果m等于1,执行这里代码case 3:   // 如果m等于1或者3,执行这里代码break;default:  // 如果m不等于0、1、3则执行这里代码
}

C++17标准增加的语法

switch (语句; 变量) { ... }

用于限制临时变量的范围

int i = 0;
std::cin >> i;
switch (int k = 2*i; k) {}

4.三元条件运算符

语法:

Result = Condition ? If-Expression : Else-Expression
结果 = 条件 ? 条件为真的结果 : 条件为假的结果
int i = 8;
int j = i > 10 ? 1 : 2;
j = 2
int k = 20;
int l = (k > 10) ? 1 : 2;l = 1
int b = true;
double d = b ? 2.0 : 0.5;
double e = !b ? 2.0 : 0.5;
d =2.0
e = 0.5

5.循环迭代

基于范围的循环   C++11

for(变量:范围) {…}

范围 = 具有标准迭代器接口的对象,例如 std::vector

std::vector<int> v {1,2,3,4,5};
// print all elements of vector to console
for (int x : v)  { std::cout << x << ' '; }

运行上面代码

for(初始化;条件;步骤) {…}

// prints 0 1 2 3 4
for (int i = 0; i < 5; ++i) {std::cout << i << ' ';
}

运行上面代码

while(条件) {…}

第一次条件检查:在第一次循环迭代之前

int j = 5;  
while (j < 10) {std::cout << j << ' ';++j;
}

当 j 小于10时,打印:5 6 7 8 9
运行上面代码

do {…} while(条件);

注意最后的分号
第一次检查条件:在第一次循环迭代之后

  • 只有在没有(标准)库函数/算法的情况下才写循环(我们将在后面的章节中了解标准库)!
  • 比起其他类型的循环,更推荐基于范围的循环!(不可能出现索引/条件错误)
  • 只在事先不知道迭代次数的情况下使用(do) while循环!

附上原文地址
如果文章对您有用,请随手点个赞谢谢!^_^

在这里插入图片描述

这篇关于C++初学者指南第一步---7.控制流(基础)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077368

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1