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 panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符