C++ Break 和 Continue

break 语句还可以用来跳出循环。

在以下示例中,当 i 等于 4 时跳出循环:

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

C++ Continue

以下示例跳过了值为 4 的情况:

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

在 While 循环中使用 Break 和 Continue

你也可以在 while 循环中使用 breakcontinue

Break 示例

int i = 0;
while (i < 10) {
cout << i << "\n";
i++;
if (i == 4) {
break;
}
}

Continue 示例

int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
cout << i << "\n";
i++;
}

C++ 数组

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

要声明数组,请定义变量类型,指定数组名称,后跟方括号,并指定它应该存储的元素数:

string cars[4];

我们现在声明了一个变量,它保存了一个包含四个字符串的数组。要向其中插入值,我们可以使用数组文字 - 将值放在逗号分隔的列表中,放在花括号内:

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};

要创建一个包含三个整数的数组,你可以这样写:

int myNum[3] = {10, 20, 30};

访问数组的元素

通过在方括号 [] 内引用索引号来访问数组元素。

该语句访问 cars 中的第一个元素的值:

示例

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars[0];
// 输出 Volvo

注意: 数组索引从 0 开始:[0] 是第一个元素。[1] 是第二个元素,依此类推。

更改数组元素

要更改特定元素的值,请引用索引号:

cars[0] = "Opel";

示例

string cars[4] = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
cout << cars[0];
// 现在输出 Opel 而不是 Volvo

遍历数组

你可以使用 for 循环遍历数组元素。

以下示例输出 cars 数组中的所有元素:

示例

string cars[5] = {"Volvo", "BMW", "Ford", "Mazda", "Tesla"};
for (int i = 0; i < 5; i++) {
cout << cars[i] << "\n";
}

这个示例输出每个元素的索引和其值:

示例

string cars[5] = {"Volvo", "BMW", "Ford", "Mazda", "Tesla"};
for (int i = 0; i < 5; i++) {
cout << i << " = " << cars[i] << "\n";
}

这个示例展示了如何遍历一个整数数组:

示例

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

foreach 循环

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

语法

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

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

示例

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

省略数组大小

在 C++ 中,你不必指定数组的大小。编译器足够智能,可以根据插入的值的数量确定数组的大小:

string cars[] = {"Volvo", "BMW", "Ford"}; // 三个数组元素

上面的示例等同于:

string cars[3] = {"Volvo", "BMW", "Ford"}; // 也是三个数组元素

然而,最后一种方法被认为是“良好的做法”,因为它将减少程序中错误的几率。

省略声明中的元素

还可以在不在声明时指定元素的情况下声明一个数组,并在以后添加它们:

示例

string cars[5];
cars[0] = "Volvo";
cars[1] = "BMW";
// ...

最后

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

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

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

C++ Break、Continue 和 数组操作详解的更多相关文章

  1. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  2. MongoDB各种查询操作详解

    这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下   一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...

  3. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  4. VC++常用数据类型及其操作详解

    原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...

  5. js数组方法详解

    Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...

  6. JavaScript数组方法详解

    JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中 ...

  7. c++排序二叉树的出现的私有函数讨论,以及二叉树的删除操作详解

    c++排序二叉树的出现的私有函数讨论, 以及二叉树的删除操作详解 标签(空格分隔): c++ 前言 我在c++学习的过程中, 最近打了一个排序二叉树的题目,题目中出现了私有函数成员,当时没有理解清楚这 ...

  8. [Android新手区] SQLite 操作详解--SQL语法

    该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...

  9. shell字符串操作详解

    shell字符串操作详解的相关资料. 1.shell变量声明的判断  表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...

  10. memcached 命令操作详解

    memcached 命令操作详解 一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> < ...

随机推荐

  1. 第一百一十八篇: JavaScript 原型链式继承

    好家伙,好家伙,本篇为<JS高级程序设计>第八章"对象.类与面向对象编程"学习笔记 1.原型链 原型链是JS实现"继承"的方案之一 ECMA-262 ...

  2. 什么是Redis持久化?

    Redis持久化指的是将内存中的数据同步到硬盘文件,并在redis重新启动的时候将数据备份到硬盘上,从而保证数据的安全性.通过持久化, Redis可以在系统关闭时将数据保存到硬盘上,避免了数据丢失的风 ...

  3. VC-MFC(2) 随笔笔记

    1 //点击按钮出来对话框---------------- 2 3 1.首先添加 对话框(标识符) 4 2.在点击按钮出来第二个对话框,直接鼠标右键 新建 类 5 3.在.CPP添加新建类的 头文件 ...

  4. k8s部署nacos集群

    首先创建数据库 nacos 执行以下语句 CREATE TABLE `config_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'i ...

  5. 二进制文件分析工具-hexdump使用指南

    一 概念: hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII.八进制.十进制.十六进制 格式进行 查看. 二 用法简介: 该工具的用法十分简单,具体如下所示: ...

  6. 逆向通达信Level-2 续九 (无帐号打开itrend研究版)

    此itrend研究版的版本比较旧. 本篇演示三图,用例进程同为0x4970. 1. itrend不支持脱机,游客登陆.没有帐号不能打开.现在以无帐号打开. 2. itrend支持高清,当打开主界面就会 ...

  7. C++多态底层原理:虚函数表

    虚函数表 C++ 对象模型 在有虚函数的情况下,C++对象的模型可以概括为:虚函数表指针+数据struct.在对象所在的内存里:前8个字节(64位系统)是虚函数表所在地址,后边是对象中的member ...

  8. 性能优化:编译器优化选项 -O2/-O3 究竟有多强大?

    之前的"性能优化的一般策略及方法"一文中介绍了多种性能优化的方法.根据以往的项目经验,开启编译器优化选项可能是立竿见影.成本最低.效果最好的方式了. 这么说可能还不够直观,举个真实 ...

  9. linux使用hostapd+dnsmasq管理多张网卡,搭建dns服务器,并发射wifi热点(支持360wifi等等)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2015-03-03 18:37:39 ...

  10. Performance Improvements in .NET 8 -- JIT部分翻译

    相关视频 动态PGO 基准测试设置 在本文中,我包括微基准测试以突出讨论的各个方面.其中大部分基准测试都是使用BenchmarkDotNet v0.13.8实现的,除非另有说明,否则每个基准测试都有一 ...