C++ Switch 语句

使用 switch 语句选择要执行的多个代码块之一。

语法

switch(expression) {
case x:
// 代码块
break;
case y:
// 代码块
break;
default:
// 代码块
}

它的工作原理如下:

  • switch 表达式被评估一次
  • 表达式的值与每个 case 的值进行比较
  • 如果找到匹配项,则执行关联的代码块
  • breakdefault 关键字是可选的

下面的示例使用星期几的数字来计算星期几的名称:

示例

int day = 4;
switch (day) {
case 1:
cout << "Monday";
break;
case 2:
cout << "Tuesday";
break;
case 3:
cout << "Wednesday";
break;
case 4:
cout << "Thursday";
break;
case 5:
cout << "Friday";
break;
case 6:
cout << "Saturday";
break;
case 7:
cout << "Sunday";
break;
}
// 输出 "Thursday"(星期四,对应 day 为 4)

break 关键字

当 C++ 遇到 break 关键字时,它会跳出 switch 块。这将停止更多代码和 case 测试的执行。

当找到匹配项并完成工作时,是时候休息一下了。不需要进行更多的测试。

break 可以节省大量的执行时间,因为它“忽略”了 switch 块中其余代码的执行。

default 关键字

default 关键字指定如果没有 case 匹配时要运行的一些代码。

C++ While 循环

循环可以在达到指定条件时执行一段代码块。

循环非常方便,因为它们节省时间,减少错误,并且使代码更易读。

C++ While 循环

while 循环通过一个指定条件为 true 时循环执行代码块:

语法

while (condition) {
// 要执行的代码块
}

在下面的示例中,只要变量(i)小于 5,循环中的代码就会一遍又一遍地运行:

示例

int i = 0;
while (i < 5) {
cout << i << "\n";
i++;
}

注意:不要忘记增加条件中使用的变量,否则循环将永远不会结束!

C++ Do/While 循环

do/while 循环是 while 循环的变体。这个循环会在检查条件是否为 true 之前执行一次代码块,然后只要条件为 true,就会重复执行循环。

语法

do {
// 要执行的代码块
} while (condition);

下面的示例使用了 do/while 循环。即使条件为 false,代码块也会至少执行一次,因为在测试条件之前会执行代码块:

示例

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

C++ For 循环

当你确切知道你要循环执行一段代码的次数时,使用 for 循环而不是 while 循环:

语法

for (语句 1; 语句 2; 语句 3) {
// 要执行的代码块
}
  • 语句 1 在执行代码块之前执行一次。
  • 语句 2 定义了执行代码块的条件。
  • 语句 3 在代码块执行后执行(每次)。

下面的示例将打印数字 0 到 4:

示例

for (int i = 0; i < 5; i++) {
cout << i << "\n";
}

示例解释

  • 语句 1 在循环开始前设置一个变量(int i = 0)。
  • 语句 2 定义了循环运行的条件(i 必须小于 5)。如果条件为 true,则循环将重新开始,如果为 false,则循环将结束。
  • 语句 3 每次代码块执行后增加一个值(i++)。

另一个示例

此示例将只打印 0 到 10 之间的偶数值:

for (int i = 0; i <= 10; i = i + 2) {
cout << i << "\n";
}

嵌套循环

还可以在另一个循环中放置一个循环。这被称为嵌套循环。

“内部循环”将在“外部循环”的每次迭代中执行一次:

// 外部循环
for (int i = 1; i <= 2; ++i) {
cout << "外部:" << i << "\n"; // 执行 2 次 // 内部循环
for (int j = 1; j <= 3; ++j) {
cout << " 内部:" << j << "\n"; // 执行 6 次(2 * 3)
}
}

foreach 循环

还有一个“foreach 循环”(在 C++ 版本 11(2011)中引入),它专门用于遍历数组(或其他数据集)中的元素:

语法

for (类型 变量名 : 数组名) {
// 要执行的代码块
}

以下示例使用“foreach 循环”输出数组中的所有元素:

示例

int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i : myNumbers) {
cout << i << "\n";
}

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

C++ While 和 For 循环:流程控制全解析的更多相关文章

  1. 循环流程控制&方法(3)

    1.循环流程控制 当某一段代码需要重复执行多次的时候,就需要用到循环: 循环三要素: 循环的起点:循环的终点(结束条件):步长: 当循环条件不再成立,结束循环: for循环 for(循环起点:循环条件 ...

  2. day05流程控制while循环 流程控制for循环

    1.什么是循环:循环就是重复做某事 2.为何要有循环:为了计算机能够具备人重复做某事的能力 3,.如何用循环: 1.结束while循环的两种方法:1.修改条件:等到下一次循环开始时判断,条件为假才会结 ...

  3. day_4流程控制之分支结构循环结构及for循环

    复习一下昨天的内容 1:变量的命名规范 只能由数字 字母 及下划线组成 不能以数字开头 不能与系统关键字重名 _开头有特殊含义 __开头__结尾的变量是魔法变量 支持大小驼峰 ,但建议使用下划线连接语 ...

  4. PHP入门之流程控制

    前言 上一篇文章对PHP的一些类型和运算符进行了简单的讲解.PHP入门之类型与运算符 这篇简单讲解一下流程控制.结尾有实例,实例内容是用switch分支和for循环分别做一个计算器和金字塔. 分支控制 ...

  5. C#学习笔记_04_流程控制

    04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...

  6. 流程控制、if、elif、else,whilie、break、continue的使用

    今日内容 流程控制理论 if判断 while循环 流程控制概念 流程控制就是控制事物的执行流程 执行流程的分类 顺序结构 从上往下依次执行,代码运行流程图如下 分支结构 根据某些条件判断做出不同的运行 ...

  7. python全栈开发-Day2 布尔、流程控制、循环

    python全栈开发-Day2 布尔 流程控制 循环   一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...

  8. python全栈 流程控制;while 循环 格式化输出 运算符 及编码

    python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...

  9. Python全栈之路----流程控制+循环

    (一)流程控制 1.单分支结构    if  条件: 满足条件后要执行的代码 2.双分支结构: if  条件: 满足条件后要执行的代码 else : if 不满足就执行这个代码 3.多分支结构:if ...

  10. Python全栈开发之---输入输出与流程控制

    Python简介 python是吉多·范罗苏姆发明的一种面向对象的脚本语言,可能有些人不知道面向对象和脚本具体是什么意思,但是对于一个初学者来说,现在并不需要明白.大家都知道,当下全栈工程师的概念很火 ...

随机推荐

  1. 【LeetCode回溯算法#03】电话号码的字母组合(数字映射字母)

    电话号码的字母组合 力扣题目链接(opens new window) 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任 ...

  2. 第134篇:解决浏览器的CORS跨域问题(CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome-untrusted, https, edge.)

    好家伙,   我继续尝试着将我的飞机大战使用ES6模块化分离开来,出了点问题 1.出现问题: edge,chrome等一系列浏览器,会为了安全,禁止你跨域访问 目录如下: 主程序  index.htm ...

  3. 第124篇: 期约Promise基本方法

    好家伙,本篇为<JS高级程序设计>第十章"期约与异步函数"学习笔记   1.异步编程 同步行为和异步行为的对立统一是计算机科学的一个基本概念. 特别是在 JavaScr ...

  4. 【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available

    问题描述 在App Service中启用Identity后,使用系统自动生成 Identity. 使用如下代码连接数据库 SQL Server: SQLServerDataSource dataSou ...

  5. Java 常用类 String的常用方法(1)

    1 package com.bytezero.stringclass; 2 3 import org.junit.Test; 4 5 import java.sql.SQLOutput; 6 impo ...

  6. C++ map //map/multimap容器 //map容器 构造和赋值 //map大小 和 交换 //map插入和删除 //map查找和统计 //map容器排序

    1 //map/multimap容器 //map容器 构造和赋值 //map大小 和 交换 2 //map插入和删除 //map查找和统计 //map容器排序 3 4 #include<iost ...

  7. Obsidian 设置快捷键 Ctrl+Shift+J 打开OB(未启动则启动,启动未激活则激活,已激活则最小化)- autoHotKey

    Obsidian 设置快捷键 Ctrl+Shift+J 打开OB(未启动则启动,启动未激活则激活,已激活则最小化)- autoHotKey 需求 将Obsidian作为主笔记软件使用,设置个快捷键,配 ...

  8. 英语单词 重读 注意第六条 类似tion前面的重读这种的

    单词音节重读的10个基本判断规则: 1.一个单词只有一个重读音节 无论该单词有多少个音节(syllable),其重读音节只有一个,而且都在元音上,辅音不重读.单音节词也重读,只是省略了重音符号.如:b ...

  9. c语言中内存分配malloc,calloc,realloc函数的区别和联系

    一 概念: A malloc() 在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需要内存空间的长度,返回该区域的首地址 B calloc() 与malloc相似,参数size ...

  10. 前后端分离之jQuery入门

    jQuery入门 基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库.借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得 ...