回头再看C++【第六天】

家住魔仙堡 提交于 2020-02-02 04:01:19

流程控制语句

C++语言结构化程序由若干个基本结构构成,每个基本结构可以包含一条或若干条语句。程序中语句的执行顺序称为程序结构,如果程序语句是按照书写顺序执行的,则称为顺序结构;如果是按照某个条件来决定是否执行,则称为选择结构;如果某些语句要反复执行多次,则称为循环结构。

语句和语句块

语句是指定程序做什么和程序所处理的数据元素的基本单元。大多数C++语句都以分号结尾 。语句有许多不同的种类,最基本的语句是把一个名称引入到程序源文件中的语句。最简单的语句只有一条语句,只有一个结束标志,但是可能会有一个或一个以上的表达式。它可能只完成一种运算,也可能完成多种运算。

  • 书写语句时,末尾一定要写上分号;
  • 空语句是指只有一个分号的语句,在语法上需要但逻辑上什么都不需要做。
  • 语句块可用用大括号{}来作为标志,可嵌套任意级。
  • 当语句块内只包含一条时,大括号可以省略。
    C语言程序的组成比较复杂,不但有变量和常量等简单元素,而且还有函数 、数组和语句等较大的个体。但是从整体方面上看,C语言程序的结构比较清晰。
    c++预定义标识符
    C++程序的执行部分是由语句组成的,程序的功能也是由执行语句实现的。C++语言语句可 分为如下5类。
  1. 表达式语句:表达式语句由表达式加上分号“;”组成。
表达式;
  1. 函数调用语句:由函数名、实际参数和分号“;”组成。`
函数名(实际参数表);
  1. 控制语句
    C++语言中的控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语 句定义符组成。
  • 条件判断语句:if语句、switch语句。
  • 循环执行语句:do while语句、while语句、for语句。
  • 转向语句:break语句、goto语句、continue语句、return语句。
  1. 复合语句
    复合语句就是把多个语句用括号{}括起来组成的语句,复合语句通常又被称为分程序。在程序中应把复合语句看成是单条语句,而不是多条语句。

  2. 空语句
    只有分号";"组成的语句称为空语句。空语句是什么也不执行的语句,在程序中空语句可用来作空循环体。

在C++语言中,允许一行同时写几个语句,也允许一个语句被拆开后写在几行上,并且书写格式可以不固定。

顺序结构

C++语言是一种结构化和模块化通用程序设计语言,结构化程序设计方法可以使程序结构更加清晰,提高程序的设计质量和效率。C语言的流程控制掌控着整个程序的运作,将各个功能统一起来串联起来。
顺序结构遵循了万物的生态特性,它总是从前往后按序进行。在程序中体现出的特点就是 :按照程序的书写顺序自上而下地顺序执行,每条语句都必须执行,并且只能执行一次。顺序结构是C++语言程序中最简单的结构方式。

选择结构

大多数稍微复杂的程序都会使用选择结构,其功能是根据所指定的条件,决定从预设的操 作中选择一条操作语句。

  • 单分支结构语句
    对于单分支结构的if语句,功能是对一个表达式进行计算,并根据计算的结果决定是否执 行后面的语句。
  • 双分支结构语句
    使用if-else语句实现双分支结构。双分支结构语句的功能是对一个表达式进行计算,并根据得出的结果来执行其中的操作语句。
    if-else语句可以多重嵌套。有如下两种形式
//第一种
if(表达式)
    语句块1;
else if(表达式2)
    语句块2;
else if(表达式3)
    语句块3;
    ...
else if(表达式n)
    语句块n;
else
    语句块m;
    
 //第二种
 if(表达式1)
    语句块1;
 if(表达式2)
    语句块2;
    ......
  • 多分支结构
    多分支选择结构有n个操作,C++中提供了一种专门实现多分支结构的switch语句。
switch(表达式){
    case 常量表达式1:
    语句块1;
    case 常量表达式2:
    语句块2;
    break;
    ...
    case 常量表达式n:
    语句块n;
    break;
    default:
    语句m;
}

上述格式的含义是:计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的 值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面 所有case后的语句;如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句;break语句指终止该语句的执行,跳出switch语句到switch语句后的第一条语句上,即把执行权传送给switch后面的语句。break语句不是必须的,但如果不加上他,就会执行所选case之后的所有语句。

  • goto语句:goto语句是一个很生硬的指令,它允许无条件地分支指定的程序语句。要进行分支的语句 必须用语句标签来标识,语句标签是一个根据与变量名相同规则定义的标识符。其后跟一个冒号,放在要使用该标签引用的语句之前。
Label 1:x = 1;

当使用语句

goto Label1;

可以直接跳转到前一个语句处执行。
在程序中,应尽可能避免使用goto语句。goto语句会使代码极难理解。如果goto语句位于变量的作用域中,但绕过了变量的声明,编译器就会发出一个错误消息。

循环结构

在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。
循环是一种机制,它允许重复执行同一个系列的语句,直到满足指定的条件为止。循环中的语句有时称为迭代语句。对循环中的语句块或语句执行一次称为迭代。
循环有两个基本元素:组成循环体的、要重复执行的语句或语句块以及决定何时停止重复循环的循环条件。循环条件有许多不同的形式,提供了控制循环的不同方式,如下:

  • 执行循环指定的次数。
  • 循环一直执行到给定的值超过另一个值为止。
  • 循环一直执行到从键盘上输入某个字符为止。

循环主要分为两种形式:for循环(while循环)和do-while循环。前者先判断循环条件再执行循环体,后者先执行循环体再判断循环执行条件。

//for循环
for(初始化语句; 条件表达式; 表达式){
    语句块;
}
//while循环
while(条件表达式){
    语句块;
}
//do-while循环
do{
    语句块;
}while(条件判断语句)
  • continue语句
    continue语句只能被用于while、do或for语句中,其功能是用来忽略循环语句块内位于它后面的代码,从而直接开始另外新的循环。但是,continue语句只能使直接包含它的语句开始新的循环,而不能作用于包含它的多个嵌套语句。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!