Advertisement

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(一)

阅读量:

在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;
    
 }
    
    
    
    

全部评论 (0)

还没有任何评论哟~