当前位置: 首页 > news >正文

C/C++中for语句循环用法及练习

目录

 

语法

下面是 for 循环的控制流:

 实例

基于范围的for循环(C++11)

 随堂笔记!

C语言训练-计算1~N之间所有奇数之和

题目描述

输入格式

输出格式

样例输入

样例输出

环形方阵

干货直达 


for 循环允许您编写一个执行特定次数的循环的重复控制结构。

语法

C++ 中 for 循环的语法:

int n=10;
for(int i;i<=n;i++)
{cout<<"点赞+关注,爱你么么哒";
}

下面是 for 循环的控制流:

  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。
  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。
  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。
  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,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 个要素:

  1. 必须将计数器变量初始化为起始值。
  2. 必须通过将其与最终值进行比较来测试计数器变量。当计数器变量达到其最终值时,循环终止。
  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 循环的控制流&#xff1a; 实例 基于范围的for循环(C11) 随堂笔记&#xff01; C语言训练-计算1~N之间所有奇数之和 题目描述 输入格式 输出格式 样例输入 样例输出 环形方阵 干货直达 for 循环允许您编写一个执行特定次数的循环的重复控制结构。…...

AnimatorOverrideController说明

unity-AnimatorOverrideControllerhttps://docs.unity.cn/cn/current/ScriptReference/AnimatorOverrideController.html 用于控制动画器重写控制器的接口。 动画器重写控制器的用途是重写某个控制器的动画剪辑&#xff0c;从而为给定化身定制动画。 在运行时基于相同的 Anim…...

1.4、第三阶段 MySQL数据库

root数据库技术 一、数据库理论 1 什么是数据库技术 数据库技术主要研究如何组织、存储数据&#xff0c;并如何高效地提取和处理数据。 2 什么是SQL SQL&#xff08;Structured Query Language&#xff09;结构化查询语言 SQL是操作数据库的命令集&#xff0c;也是功能齐全的…...

LeetCode:202. 快乐数

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;202. 快乐数 题目描述&#xff1a;编写一个算法来判断一个数 n 是不是快…...

Android 14 新功能之 HighLights:快速实现文本高亮~

日常开发中可能会遇到给 TextView 的全部或部分文本增加高亮效果的需求&#xff0c;以前可能是通过 Spannable 或者 Html 标签实现。 升级 Android 14 后就不用这么迂回了&#xff0c;因其首次引入直接设置高亮的 API&#xff1a;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服务器仅接收到部分请求&#xff0c;但是一旦服务器并没有拒绝该请求&#xff0c;客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议&#xff1a;服…...

蓝桥杯刷题冲刺 | 倒计时15天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.年号字串2.裁纸刀3.猜生日1.年号字串 题目 链接&#xff1a; 年号字串 - 蓝桥云课 (lanqiao.c…...

【差分数组】

差分数组一维差分差分数组的作用差分矩阵结语一维差分 输入一个长度为 n 的整数序列。接下来输入 m个操作&#xff0c;每个操作包含三个整数 l,r,c&#xff0c;表示将序列中 [l,r] 之间的每个数加上 c &#xff0c;请你输出进行完所有操作后的序列。 输入格式 第一行包含两个…...

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类&#xff08;管理者&#xff09; 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安装二、系统启动项美化&#xff1a;1. refind引导2. 美化 grub 界面三、系统代理0.前言 年后找了份工作&#xff0c;忙于适应新环境所以更新也减缓了&#xff0c;最近闲暇时间给个人电脑进行了整…...

电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇

说到“按住电源键强制关机”的操作&#xff0c;想必大家都不会陌生&#xff0c;毕竟在电脑蓝屏或者电脑死机的时候&#xff0c;我们总是束手无策。而且&#xff0c;身边的人在遇到同样的情况时&#xff0c;往往都是选择长按电源键强制关机&#xff0c;所以当我们遇到同样的情况…...

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) 理想情况下&#xff0c…...

链表经典OJ题合集(包含带环问题,相交问题,随机指针复制等,附动画讲解)

目录 一&#xff1a;前言 二&#xff1a;简单题目 (1)移除链表元素 (2)反转链表 (3)找链表的中间结点 (4)输入一个链表&#xff0c;输出该链表中倒数第k个结点 (5)合并两个有序链表 (6)相交链表 (7)判断链表是否带环 三&#xff1a;较难题目 (1)链表分割 (2)判断链表是否为回…...

CSS新增

系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录什么是 CSS3渐进增强和优雅降级CSS3 中的选择器CSS3 中的背景CSS3 中的边框CSS3 中的文本效果CSS3 中的字体 font-face什么是 CSS3 CSS3是CSS&#xff08;层叠样式表&#xff09;技术的升级版…...

奇安信_防火墙部署_透明桥模式

奇安信_防火墙部署_透明桥模式一、预备知识二、项目场景三、拓扑图四、基本部署配置1. 登录web控制台2.连通性配置3.可信主机配置4.授权导入5.特征库升级6.安全配置文件五、透明桥配置1. 创建桥2. 端口绑定桥3. 创建桥端口六、结语一、预备知识 安全设备接入网络部署方式 二、…...

C语言——字符串函数(2)和内存函数

(一)strtok函数dilimiters参数是个字符串&#xff0c;定义了用作分隔符的字符集合第一个参数指定一个字符串&#xff0c;它包含了0个或者多个由dilimiters字符串中一个或者多个分隔符分割的标记。strtok函数找到str中的下一个标记&#xff0c;并将其用 \0 结尾&#xff0c;返回…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...