在C++编程中,顺序结构和分支结构是两种基本的控制流结构,其中顺序结构是一种最简单、最基本的控制结构,即代码按照从上到下的顺序逐行执行,每个语句按照顺序执行,一条语句执行完再执行下一条语句,依次执行所有的操作步骤,不遗漏、不重复。分支结构由条件判断和分支语句块构成,允许程序根据某些条件选择不同的执行路径。
在C++编程中,循环结构(也被称为重复结构)是一种重要的控制流机制,它允许程序中的某一条或某一组语句(被称为循环体)按照指定的条件重复执行若干次。这种结构极大地提高了代码的效率和可读性,尤其是在处理需要重复执行的任务时。
假设在考试中,一个考场30个座位,需要为这30个学生安排具体座位,学生从1号开始依次增加到30号结束,例如1号学生坐1号座位,2号学生坐2号座位……以此类推,需要编写程序为每个学生打印出座位号,那么需要输出30次,具体程序如下:
#include<bits/stdc++.h>
using namespace std;
int main() {cout<<"No.1 student: Your seat number is : 1"<<endl;cout<<"No.2 student: Your seat number is : 2"<<endl;……cout<<"No.30 student: Your seat number is : 30"<<endl; return 0;
}
这样需要30条输出语句,这30条语句除了数字不一样之外,其他内容都是一样的,这样太麻烦了,想要解决这个问题,就和后文中的循环语句息息相关,接下来介绍for循环。
一、循环结构的基本概念
循环体:这是循环结构中重复执行的代码块。在C++中,循环体通常被包含在大括号 {} 内。
循环条件:这是决定循环是否继续执行的条件。只要条件为真(非零),循环就会继续;一旦条件变为假(零),循环就会终止。
循环变量:这通常是在循环中用于跟踪执行次数的变量。在每次循环迭代中,循环变量的值都会根据循环的类型(如for循环中的递增或递减操作)进行更新。
for循环:
在实际应用中,如果重复执行相同的操作而且次数固定,就可以用for循环语句来实现。它允许指定循环的初始条件、循环变量条件和循环变量的更新方式。for循环的语法如下:
for (循环变量初始化表达式; 循环变量条件; 循环变量更新) {// 循环体
}
for循环的执行过程:首先执行初始化表达式,紧接着判断循环条件的值,如果为真,则执行循环体(花括号里面的语句),执行完循环体,执行循环变量更新,循环变量更新执行完,再重复执行循环条件,如果循环条件的值为假,则for循环结束,执行for语句之后的内容。由此可见,初始表达式仅执行一次,根据循环条件的取值循环体以及循环变量更新语句可以多次执行。
以下面的程序为例来解释for语句的格式:
for(int i=1;i<=30;i++){cout<<"No."<<i<<" student: Your seat number is : "<<i<<endl;
}
首先执行初始化表达式"int i=1",定义了一个整型变量i,并且进行初始化为1,紧接着执行循环条件i<=30(由于有30个学生,所以学生的编号不能超过30),即使用i<=30设置继续执行的条件,一旦i>30,for循环语句就结束了,当i=1时,i<=30,循环条件为真,执行循环体里面的语句,输出1号学生的座位号,紧接着执行循环变量更新:i++,i的值增加1,i的值变为2,紧接着执行循环条件2<=30为真执行循环体,输出2号学生的座位号,执行i++,i变为3,……,如此反复执行,直到i的值变为31,31<=30循环条件为假,就退出for循环了。
注意:如果循环体里面只有一条语句,那么可以将花括号省略(对于初学者来说一般不建议省略花括号,以免造成循环体语句的遗漏),那么for的语法格式还有另一种形式:
for (循环变量初始化表达式; 循环变量条件; 循环变量更新) 语句1;
所以上述例子可以写成:
for(int i=1;i<=30;i++)cout<<"No."<<i<<" student: Your seat number is : "<<i<<endl;
二、for循环基本应用:
for语句通过循环变量的初值,循环条件,循环变量更新来控制循环语句执行的次数。循环变量的主要作用是计数,除此之外,很多时候循环变量需要参与循环体的计算,以实现某种功能。
1、基本计数
例如,编程实现输出100个'*',可以用for循环语句表述为:
for(int i=1;i<=100;i++){cout<<'*';
}
该问题中,需要控制打印星号语句,即“cout<<'*';”执行100次就可以,还可以有其他的表述方法:
for(int i=100;i>=1;i--){cout<<'*';
}
for(int i=2;i<=200;i+=2){cout<<'*';
}
因此for 语句中循环初始表达式、循环条件和循环变量更新三部分内容的写法灵活多变,相互配合控制循环体语句执行的次数。在这个过程中,循环变量i只起到控制循环次数的作用。
实战训练1—求1-100的和
问题描述:
求 1+2+3+⋯+99+100 的值
输入格式:
无
输出格式:
一行一个整数,表示这100个数的和。
输入输出样例:
输入样例1 | 输出样例1 |
无 | 5050 |
问题分析:
题目要求1到100这100个数的和,首先定义一个和变量sum,通过for循环这100个数,从1到100,将这100个数累加到sum中即可,具体程序代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){int sum=0;//定义和变量并初始化为0 for(int i=1;i<=100;i++){//从1开始到100,依次对这100个数执行循环体里的内容 sum += i;//将数累加到sum中 }cout<<sum<<endl;//输出sum的值 return 0;
}