C++ Break、Continue 和 数组操作详解
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 循环中使用 break 和 continue:
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 和 数组操作详解的更多相关文章
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
- MongoDB各种查询操作详解
这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下 一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...
- windows phone 8.1开发SQlite数据库操作详解
原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...
- VC++常用数据类型及其操作详解
原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...
- js数组方法详解
Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...
- JavaScript数组方法详解
JavaScript数组方法详解 JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法:并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中 ...
- c++排序二叉树的出现的私有函数讨论,以及二叉树的删除操作详解
c++排序二叉树的出现的私有函数讨论, 以及二叉树的删除操作详解 标签(空格分隔): c++ 前言 我在c++学习的过程中, 最近打了一个排序二叉树的题目,题目中出现了私有函数成员,当时没有理解清楚这 ...
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
- memcached 命令操作详解
memcached 命令操作详解 一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> < ...
随机推荐
- SOTIF很快将会取代ISO 26262?为您详细解读SOTIF标准ISO/PAS 21448
SOTIF很快将会取代ISO 26262?为您详细解读SOTIF标准ISO/PAS 21448 根据MES模赛思对其全球客户的问卷调查表明, 尽管有相当一部分的参与者(35%)认为SOTIF在功能安全 ...
- kafka消费者的三种模式
几种不同的注册方式 subscribe方式:当主题分区数量变化或者consumer数量变化时,会进行rebalance:注册rebalance监听器,可以手动管理offset不注册监听器,kafka自 ...
- 【Azure Notification Hub】创建Notification Hub失败,提示 unrecognized arguments: --sku Free
问题描述 用Azure CLI命令创建 Notification Hub,报错不识别的参数 --Free SKU 问题解答 经测试发现,在创建Notification Hub前,需要创建 Notifi ...
- 【Azure 事件中心】从Azure Event Hub中消费数据,如何查看当前消费客户端消费数据的Offset和SequenceNumber呢(消息偏移量和序列号)?
问题描述 当通过Azure Event Hub SDK消费Event Hub中的消息时,必须指定一个Storage Account(存储账号)用于保存 Checkpoint (检查点). 比如在C#代 ...
- 【Azure Redis 缓存】C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间
问题描述 C#程序是否有对应的方式来优化并缩短由于 Redis 维护造成的不可访问的时间? Redis维护说明: Redis 服务维护时,会把副本节点提升为主节点,且旧主节点关闭现有连接时,这个时候, ...
- Android 大致可以分为四层架构
Android 系统架构 为了让你能够更好地理解 Android 系统是怎么工作的,我们先来看一下它的系统架构. Android 大致可以分为四层架构:Linux 内核层.系统运行库层.应用框架层和应 ...
- Java 多线程------多线程的创建,方式一:继承于Thread类
1 package com.bytezero.thread; 2 3 /** 4 * 多线程的创建,方式一:继承于Thread类 5 * 1.创建一个继承于Thread类的子类 6 * 2.重写Thr ...
- 8、zookeeper的集群搭建
完全配置--https://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html#sc_zkMulitServerSetup https://zoo ...
- GaussDB(DWS)运维利刃:TopSQL工具解析
本文分享自华为云社区<GaussDB(DWS)运维利刃:TopSQL工具解析>,作者:胡辣汤. 在生产环境中,难免会面临查询语句出现异常中断.阻塞时间长等突发问题,如果没能及时记录信息,事 ...
- 数据处理(传值& 乱码)
处理前端提交的数据 1.提交的域名称和处理方法的参数名一致时 /hello?name=akagi @RequestMapping("/hello") public Strin ...