发布日期:2016-01-06 11:19 来源: 标签: 编程语言 开发语言 将多条语句串联成程序 C++流程控制
本章我们主要学习使用流程控制结构将多条语句串联成程序,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
按照处理事务的流程的不同,C++中主要有下面三种程序流程控制结构:
1. 顺序结构
顺序结构是C++中最简单也最常用的一种流程控制结构。这种结构在执行的时候,它按照从上往下的顺序,依次逐条执行程序的语句。在整个过程中,执行顺序不会发生改变。所以,它通常被用来组织那些只需要一步步顺序执行就可以完成任务的语句。比如,一个简单的加法计算过程,从输入到计算再到输出,只需要依次顺序执行就可以完成,所以我们使用顺序结构来将那些分别负责输入(cin>>a>>b;)、计算(int c = a + b;)和输出(cout<<a<<" + "<<b<<" = "<<c<<endl;)的语句组织起来,就成了一个简单的加法计算程序:
// 顺序结构组织的加法计算程序
int main()
{
    cout<<"请输入两个整数:"<<endl;
    int a,b;
    cin>>a>>b;   // 输入
    int c = a + b;  // 计算
    cout<<a<<" + "<<b<<" = "<<c<<endl;  // 输出
    return 0;
}
在执行的时候,从进入main()函数开始,首先执行输入语句(cin>>a>>b;),获得用户输入的两个数值a和b,然后依次往下执行计算语句(int c = a + b;),获得计算结果并保存到变量c,接下来执行输出语句(cout<<a<<" + "<<b<<" = "<<c<<endl;),将计算结果输出。这样,使用顺序结构组织的各条语句,只需要顺序执行就可以完成任务。
2. 选择结构
现实世界是复杂的,很多问题并不是只用顺序步骤就可以解决。还是以上面的求两个数之和的程序为例,如果要求输入的数必须大于0,也就是只有大于0的两个数才能计算它们的和。这时就需要先判断输入的数是否大于0,如果满足条件,就计算两个数的和;如果不满足,就提示用户输入的数不满足条件,无法计算。为了表达这种根据不同条件拥有不同处理方法的过程,C++提供了选择结构。选择结构依靠if等条件语句来实现,它可以根据不同条件做出判断,选择不同的执行路径,实现不同的处理过程。例如:
// 用选择结构实现的加法计算程序
int a,b;
cin>>a>>b; 
// 选择结构,根据条件不同,执行的路径也不同
if( a > 0 && b > 0 )
{
    // 如果用户输入的数据满足条件,
    // 则计算结果并输出
    int c = a + b;
    cout<<a<<" + "<<b<<" = "<<c<<endl;
}
else
{
    // 如果用户输入的数据不满足条件,
    // 则提示用户输入错误
    cout<<"请输入两个大于0的数。"<<endl;
}
利用选择结构,我们将对满足条件的情况进行处理的语句组织到if分支,将对不满足条件的情况进行处理的语句组织到else分支,这样程序在执行的时候,就会根据满足条件与否而执行不同的代码,实现了对“根据不同条件拥有不同处理方法”的表达。
3. 循环结构
再来看另外一种更复杂的情形:要求输入100个数后计算它们的总和。如果采用前面介绍的顺序结构,那么就要定义100个变量,用到100个输入语句来接收数据,同时也需要100个加和语句来将它们加到总和中。这么繁琐的计算过程显然是无法接受的,那么有什么方法可以简化一下这个计算过程呢?
人们发现这类计算过程有一个规律:这个计算过程中的多次输入和加和计算的代码是相似的,输入都是从cin获取输入数据到某个变量,而加和计算也都是将输入的数据累加到一个表示总和的变量上。正因为如此,在完成一次输入和加和计算后,可以利用相同的代码完成第二次输入和加和计算。这样,整个计算过程就成了一个输入和加和计算不断重复循环往复的过程。为了表达这一类的计算过程,C++提供了循环结构。循环结构依靠for等循环语句来实现,我们将那些需要重复多次执行的语句作为循环体语句,从而可以在循环过程中得到重复多次执行,以此来表达那些同一动作需要反复执行的计算过程。 在这里,负责输入(cin>>n;)和加和计算(nTotal += n;)的语句是需要重复多次执行的,所以我们将它作为for循环的循环体语句,然后在for循环中确定循环的起点和终点,以此串联成一个可以输入并计算100个数之和的程序:
// 用循环结构实现的连续加法计算程序
// 表示总和的变量
int nTotal = 0;
// for循环实现的循环结构   
for(int i = 0; i < 100; ++i)
{
    int n = 0;
    cin>>n;        // 输入语句
    nTotal += n;  // 加和计算语句
}
// 输出结果
cout<<"你输入的100个数的总和是:"<<nTotal<<endl;
在执行for循环的时候,会连续100次地执行循环体中的输入语句和加和计算语句,这样就省掉了使用顺序结构可能带来的繁琐,很好地表达了“某个动作需要反复多次执行”的计算过程。
顺序结构、选择结构和循环结构是三种最基本的程序控制结构。这三种结构不仅可以单独使用,更多时候,我们是将多种控制结构组合使用,以此来表达那些更加复杂的计算过程。例如在上面的例子中,如果我们只想要计算输入的所有正数的和,我们就可以在循环结构中嵌入一个选择结构,用循环结构来组织那些需要反复多次执行的动作,而每次循环执行的时候,都先用选择结构对数据进行筛选,只有符合条件的数才进行加和计算。循环结构和选择结构的嵌套就可以表达这一更加复杂的计算过程:
// 循环结构和选择结构的嵌套使用
// 循环结构,执行重复动作
for(int i = 0; i < 100; ++i)
{
    int n = 0;
    cin>>n;
    // 选择结构,筛选数据,对符合条件的数据进行计算
    if( n > 0)
    {
         nTotal += n;
    }
}
通过这三种控制结构的组合,几乎可以描述任何复杂的程序执行流程。换句话说,也就是无论什么样的程序执行流程,无外乎是这三种结构或这三种结构的组合。而正是这三种控制结构将零散的实现简单操作的语句组织起来,表达一定的运算过程,最终才形成了实现一定功能的程序。

相关评论

专题信息
    Visual C++是一个功能强大的可视化软件开发工具,是高等院校计算机及相关专业主要核心课程。 本教程对Visual C++ 的应用与开发进行了详细系统的介绍,内容主要包括:Visual C++程序的建立,菜单、工具栏和状态栏的创建,对话框和常用控件,窗口、文档与视图,图形绘制,数据库应用,多媒体技术等。 本教程以案例教学为主,各章节都附有大量的实例,并且操作步骤详细,有利于引导读者更好的消化、理解和实际应用本章节所学的知识内容,希望大家能多多支持中国站长网络学院!