C/C++中for语句循环用法及练习
目录
语法
下面是 for 循环的控制流:
实例
基于范围的for循环(C++11)
随堂笔记!
C语言训练-计算1~N之间所有奇数之和
题目描述
输入格式
输出格式
样例输入
样例输出
环形方阵
干货直达
for 循环允许您编写一个执行特定次数的循环的重复控制结构。
语法
C++ 中 for 循环的语法:
int n=10;
for(int i;i<=n;i++)
{cout<<"点赞+关注,爱你么么哒";
}
下面是 for 循环的控制流:
- init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
- 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
- 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
- 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

实例
#include <iostream>
using namespace std;int main ()
{// for 循环执行for( int a = 10; a < 20; a = a + 1 ){cout << "a 的值:" << a << endl;}return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19
基于范围的for循环(C++11)
for 语句允许简单的范围迭代:
int my_array[5] = {1, 2, 3, 4, 5};
// 每个数组元素乘于 2
for (int &x : my_array)
{x *= 2;cout << x << endl;
}
// auto 类型也是 C++11 新标准中的,用来自动获取变量的类型
for (auto &x : my_array) {x *= 2;cout << x << endl;
}
上面for述句的第一部分定义被用来做范围迭代的变量,就像被声明在一般for循环的变量一样,其作用域仅只于循环的范围。而在":"之后的第二区块,代表将被迭代的范围。
#include<iostream>
#include<string>
#include<cctype>
using namespace std; int main()
{ string str("some string"); // range for 语句 for(auto &c : str) { c = toupper(c); } cout << str << endl; return 0;
}
随堂笔记!
for语句的基本格式
题目 1149:
for (表达式1;表达式2;表达式3) {// 循环体语句
}
for 语句中的三个表达式可部分或全部省略,但两个分号不能省略。
常见的是:将表达式1放在了 for 语句之前,或表达式3放在了循环体中,在 for 语句中就可相应地省略表达式1或表达式3。
如:
for(i=1,s=0; i<=100; i++) {sum += i;
}
可写成如下形式:
i=1;
sum=0;
for ( ;i<=100; ) {sum+=i; i++;
}
// 等效于while循环
表达式2也可省略,写成:
for (; ;) {…}
此时,系统约定表达式2的值为 1,即恒为真,则等同于:
for (; 1;) {…}
题目 1149:
C语言训练-计算1~N之间所有奇数之和
时间限制: 1s 内存限制: 128MB 提交: 6699 解决: 4978
题目描述
计算1~N之间所有奇数之和
输入格式
正整数N
输出格式
1~N之间所有奇数之和
样例输入
复制
10
样例输出
复制
25
#include<iostream>
using namespace std;
int main()
{int n,i;int sum = 0;cin >> n;for(i = 1; i <= n; i ++){if(i % 2 != 0) //替换为if(i % 2)的效果是一样的sum += i;}cout << sum;return 0;
}
环形方阵
#include<iostream>
using namespace std;
int main()
{int a [101][101];int n,j,i,k;cin>>n;for(k=1;k<=(n+1)/2;k++){for(i=k;i<=n+1-k;i++){for(j=k;j<=n+1-k;j++){a[i][j];}}} for(i=1;i<=n;i++){for(j=1;j<=n;j++){cout<<a[i][j]<<" ";}cout<<endl;}return 0;}
干货直达
只要存在特定条件,就执行条件循环。例如,只要输入值无效,就会执行输入验证循环。在编写一个条件循环时,无法知道它将迭代的次数。
有时候程序员知道循环必须执行的确切迭代次数。重复特定次数的循环称为计数控制循环。例如,如果一个循环要求用户输入一年中每个月的销售金额,则它将迭代 12 次。这实际上意味着,循环数为 12,并要求用户在每次计数时输入销售金额。
计数控制循环必须具有 3 个要素:
- 必须将计数器变量初始化为起始值。
- 必须通过将其与最终值进行比较来测试计数器变量。当计数器变量达到其最终值时,循环终止。
- 必须在每次迭代期间更新计数器变量。这通常通过变量递增来完成。
前面已经介绍过,通过使用 while循环来创建计数控制循环的方法,但是,由于计数控制循环实在太常用,所以 C++又提供了另外一种特别适合计数控制的循环,即所谓的 for循环。
与前面介绍的其他循环一样,如果循环体中只有一个语句,则可以省略大括号。
for 循环的第一行是循环头。在关键词 for 之后,括号内有 3 个表达式,用分号分隔(注意第 3 个表达式之后没有分号):
- 第一个表达式是初始化表达式,它通常用于将计数器初始化为其起始值。这是循环执行的第一个动作,只做一次。
- 第二个表达式是测试表达式。它以与 while 和 do-while 循环中的测试表达式相同的方式测试条件,并控制循环的执行。只要这个条件为 true,for 循环的主体将重复。与 while 循环一样,for 循环也是一个预测试循环,因此它在每次迭代之前判断测试表达式。
- 第三个表达式是更新表达式。它在每次迭代结束时执行。通常,这是一个递增循环计数器变量的语句。
以下是一个简单的 for 循环示例,将打印“Hello”字符串 5 次:
for (count = 1; count <= 5; count++)
cout << "Hello" << endl;
在该循环中,初始化表达式为 count = 1,测试表达式为“count <= 5”,更新表达式为 count++。循环的主体只有一个语句,即 cout 语句。图 1 说明了循环执行过程中发生的事件顺序。
请注意如何使用计数器变量 count 来控制循环迭代的次数。它的值从 1 开始,每次循环迭代之后递增 1。只要表达式 "count <= 5" 保持为 true,循环将重复迭代。但是,在 5 次迭代之后,count 将变成 6,这导致测试表达式变为 false,所以循环终止。
还要注意的是,在这个例子中,count 变量仅在循环头中使用,以控制循环迭代的次数。它不用于任何其他目的。当然,也可以在循环体内使用计数器变量。例如,来看下面的代码:
for (number = 1; number <= 5; number++)
cout << number << " ";
此循环中的计数器变量为 number。除了控制迭代次数之外,它也被用在循环体中。此循环将产生以下输出:
1 2 3 4 5
可以看到,循环在每次迭代期间显示 number 变量的内容。
下面的程序通过使用 for 循环而不是 while 循环来显示数字 1〜5 及其平方值。
#include <iostream>
#include <iomanip>
using namespace std;int main()
{int num;cout << "Number Square\n";cout << "--------------\n";for (num =1; num <= 5; num++)cout << setw (4) << num << setw (7) << (num * num) << endl;return 0;
}
相关文章:
C/C++中for语句循环用法及练习
目录 语法 下面是 for 循环的控制流: 实例 基于范围的for循环(C11) 随堂笔记! C语言训练-计算1~N之间所有奇数之和 题目描述 输入格式 输出格式 样例输入 样例输出 环形方阵 干货直达 for 循环允许您编写一个执行特定次数的循环的重复控制结构。…...
AnimatorOverrideController说明
unity-AnimatorOverrideControllerhttps://docs.unity.cn/cn/current/ScriptReference/AnimatorOverrideController.html 用于控制动画器重写控制器的接口。 动画器重写控制器的用途是重写某个控制器的动画剪辑,从而为给定化身定制动画。 在运行时基于相同的 Anim…...
1.4、第三阶段 MySQL数据库
root数据库技术 一、数据库理论 1 什么是数据库技术 数据库技术主要研究如何组织、存储数据,并如何高效地提取和处理数据。 2 什么是SQL SQL(Structured Query Language)结构化查询语言 SQL是操作数据库的命令集,也是功能齐全的…...
LeetCode:202. 快乐数
🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 一、🌱202. 快乐数 题目描述:编写一个算法来判断一个数 n 是不是快…...
Android 14 新功能之 HighLights:快速实现文本高亮~
日常开发中可能会遇到给 TextView 的全部或部分文本增加高亮效果的需求,以前可能是通过 Spannable 或者 Html 标签实现。 升级 Android 14 后就不用这么迂回了,因其首次引入直接设置高亮的 API:HighLights。需要留意的是 HighLights API 和 …...
[渗透教程]-004-嗅探工具-Nmap
文章目录 Nmap介绍基本操作进阶操作Nmap介绍 nmap是一个网络扫描和主机检测工具,它可以帮助用户识别网络上的设备和服务。获取主机正在运行哪些服务,nmap支持多种扫描,UDP,TCP connect(),TCP SYN(半开扫描) ftp代理,反向标志,ICMP,FIN,ACK扫描,ftp代理,反向标志,ICMP. 可以用于…...
大数据技术之Hive SQL题库-初级
第一章环境准备1.1 建表语句hive>-- 创建学生表 DROP TABLE IF EXISTS student; create table if not exists student_info(stu_id string COMMENT 学生id,stu_name string COMMENT 学生姓名,birthday string COMMENT 出生日期,sex string COMMENT 性别 ) row format delim…...
常见HTTP状态码汇总
文章目录1xx: 信息2xx: 成功3xx: 重定向4xx: 客户端错误5xx: 服务器错误1xx: 信息 状态码描述100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服…...
蓝桥杯刷题冲刺 | 倒计时15天
作者:指针不指南吗 专栏:蓝桥杯倒计时冲刺 🐾马上就要蓝桥杯了,最后的这几天尤为重要,不可懈怠哦🐾 文章目录1.年号字串2.裁纸刀3.猜生日1.年号字串 题目 链接: 年号字串 - 蓝桥云课 (lanqiao.c…...
【差分数组】
差分数组一维差分差分数组的作用差分矩阵结语一维差分 输入一个长度为 n 的整数序列。接下来输入 m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c ,请你输出进行完所有操作后的序列。 输入格式 第一行包含两个…...
2022年NOC软件创意编程(学而思)决赛小学高年级组scratch
2022NOC决赛图形化小高组 一、选择题 1.运行下面的程序,最终“我的变量”的值是多少? 2.希望定义一个函数如下,可以让角色旋转指定的圈数。里面空缺的地方填上什么数字比较合适? 3.运行程序,在舞台上可以看见几个角色 ? 4.运行程序,角色会依次说什么 ? 5.我们都知…...
[JAVA]一步接一步的一起开发-图书管理系统(非常仔细,你一定能看懂)[1W字+]
目录 1.想法 2.框架的搭构 2.1图书 2.1.1Book类 2.1.2BookList类 2.2用户 2.2.1User抽象类 2.2.2AdminUser类(管理者) 2.2.3NormalUser 2.3操作 操作接口 借阅操作 删除操作 查询操作 归还图书 展示图书 退出系统 2.4小结 3.主函数的编…...
大数据周会-本周学习内容总结07
目录 01【hadoop】 1.1【编写集群分发脚本xsync】 1.2【集群部署规划】 1.3【Hadoop集群启停脚本】 02【HDFS】 2.1【HDFS的API操作】 03【MapReduce】 3.1【P077- WordCount案例】 3.2【P097-自定义分区案例】 历史总结 01【hadoop】 1.1【编写集群分发脚本xsync】…...
搭建一个双系统个人服务器
搭建一个双系统个人服务器0.前言一、双系统安装1.磁盘划分2.windows安装3.ubuntu安装二、系统启动项美化:1. refind引导2. 美化 grub 界面三、系统代理0.前言 年后找了份工作,忙于适应新环境所以更新也减缓了,最近闲暇时间给个人电脑进行了整…...
电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇
说到“按住电源键强制关机”的操作,想必大家都不会陌生,毕竟在电脑蓝屏或者电脑死机的时候,我们总是束手无策。而且,身边的人在遇到同样的情况时,往往都是选择长按电源键强制关机,所以当我们遇到同样的情况…...
Linux:centos内核优化详解
一、系统内核部分设置在以下文件 vim /etc/sysctl.conf 1.禁用IPV6 net.ipv6.conf.all.disable_ipv6 1 # 禁用整个系统所有接口的IPv6 net.ipv6.conf.default.disable_ipv6 1 net.ipv6.conf.lo.disable_ipv6 1 # 禁用某一个指定接口的IPv6(此处为:lo) 理想情况下,…...
链表经典OJ题合集(包含带环问题,相交问题,随机指针复制等,附动画讲解)
目录 一:前言 二:简单题目 (1)移除链表元素 (2)反转链表 (3)找链表的中间结点 (4)输入一个链表,输出该链表中倒数第k个结点 (5)合并两个有序链表 (6)相交链表 (7)判断链表是否带环 三:较难题目 (1)链表分割 (2)判断链表是否为回…...
CSS新增
系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录什么是 CSS3渐进增强和优雅降级CSS3 中的选择器CSS3 中的背景CSS3 中的边框CSS3 中的文本效果CSS3 中的字体 font-face什么是 CSS3 CSS3是CSS(层叠样式表)技术的升级版…...
奇安信_防火墙部署_透明桥模式
奇安信_防火墙部署_透明桥模式一、预备知识二、项目场景三、拓扑图四、基本部署配置1. 登录web控制台2.连通性配置3.可信主机配置4.授权导入5.特征库升级6.安全配置文件五、透明桥配置1. 创建桥2. 端口绑定桥3. 创建桥端口六、结语一、预备知识 安全设备接入网络部署方式 二、…...
C语言——字符串函数(2)和内存函数
(一)strtok函数dilimiters参数是个字符串,定义了用作分隔符的字符集合第一个参数指定一个字符串,它包含了0个或者多个由dilimiters字符串中一个或者多个分隔符分割的标记。strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...
统计学(第8版)——统计抽样学习笔记(考试用)
一、统计抽样的核心内容与问题 研究内容 从总体中科学抽取样本的方法利用样本数据推断总体特征(均值、比率、总量)控制抽样误差与非抽样误差 解决的核心问题 在成本约束下,用少量样本准确推断总体特征量化估计结果的可靠性(置…...
