🥝控制语句
2022-5-1
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 

 

条件语句

if语句

if语句的形式:
 
if-else语句的形式:
notion image
当代码中 if分支多下 else分支时,C++规定 else与离它最近的尚未匹配的 if匹配,从而消除了程序的二义性。
要想 else分支和外层的 if语句匹配起来,可以在内层 if语句的两端加上花括号, 使其成为一个块:
 
 

switch语句

notion image
notion image
switch语句先对括号里的表达式求值,值转换成整数类型后再与每个 case标签的值进行比较(case标签必须是整型常量表达式)。如果表达式的值和某个 case标签匹配,程序从该标签之后的第一条语句开始执行,直到到达 switch的结尾或者遇到 break语句为止。
另外,switch语句中可以添加一个 default标签,如果没有任何一个 case标签能匹配上 switch表达式的值,程序将执行 default标签后的语句。即使不准备在 default标签下做任何操作,程序中也应该定义一个 default标签,其目的在于告诉他人我们已经考虑到了默认情况,只是目前不需要实际操作。
 
不允许跨过变量的初始化语句直接跳转到该变量作用域内的另一个位置。如果需要为 switch的某个 case分支定义并初始化一个变量,则应该把变量定义在块内
 

迭代语句

迭代语句通常称为循环,它重复执行操作直到满足某个条件才停止。while和 for语句在执行循环体之前检查条件,do-while语句先执行循环体再检查条件。

while语句

while语句的形式:
只要condition的求值结果为 true,就一直执行statement(通常是一个块)。condition不能为空,如果condition第一次求值就是 falsestatement一次都不会执行。
 
定义在 while条件部分或者 while循环体内的变量,每次迭代都经历从创建到销毁的过程。在不确定迭代次数,或者想在循环结束后访问循环控制变量时,使用 while比较合适。
 
 

do-while语句

do-while语句的形式:
计算condition的值之前会先执行一次statementcondition不能为空。如果condition的值为 false,循环终止;否则重复执行statement
condition使用的变量必须定义在循环体之外,因为 do-while语句先执行语句或块,再判断条件,所以不允许在条件部分定义变量。
 
 
 

传统的for语句

for语句的形式:
一般情况下,initializer负责初始化一个值,这个值会随着循环的进行而改变。condition作为循环控制的条件,只要condition的求值结果为true,就执行一次 statement,执行后再由 expression 负责修改initializer 初始化的变量,修改发生在每次循环迭代之后,这个变量就是condition 检查的对象。如果condition 第一次求值就是falsestatement 一次都不会执行。 initializer中也可以定义多个对象,但是只能有一条声明语句,因此所有变量的基础类型必须相同。
for语句头中定义的对象只在 for循环体内可见。
 
for语句头能省略掉initializerconditionexpression中的任何一个(或者全部):
 
 

范围for语句

范围 for语句的形式:
expression表示一个序列,拥有能返回迭代器的beginend成员,比如用花括号括起来的初始值列表、数组或者者vectorstring等类型的对象。
 
declaration定义一个变量,序列中的每个元素都应该能转换成该变量的类型(可以使用auto)。如果需要对序列中的元素执行写操作,循环变量必须声明成引用类型,每次迭代都会重新定义循环控制变量,并将其初始化为序列中的下一个值,之后才会执行statement
 
 

跳转语句

break语句

break语句只能出现在迭代语句或者 switch语句的内部(包括嵌套在此类循环里的语句或块的内部),负责终止离它最近的 whiledo-whilefor或者 switch语句,并从这些语句之后的第一条语句开始执行。break语句的作用范围仅限于最近的循环或者 switch
 

continue语句

continue语句只能出现在迭代语句的内部,负责终止离它最近的循环的当前一次迭代并立即开始下一次迭代。continue语句只能出现在 forwhile和 do while循环的内部,或者嵌套在此类循环里的语句或块的内部。和 break语句不同的是,只有当 switch语句嵌套在迭代语句内部时,才能在 switch中使用 continue
 
continue语句中断当前迭代后,具体操作视迭代语句类型而定:
  • 对于 while 和 do-while 语句来说,继续判断条件的值。
  • 对于传统的 for 语句来说,继续执行 for 语句头中的第三部分,之后判断条件的值。
  • 对于范围 for 语句来说,是用序列中的下一个元素初始化循环变量。
 

goto语句

goto语句是一种特殊的语句,它的作用是从 goto语句无条件跳转到同一函数内的另一条语句,在它之前有一个标识符和一个冒号。goto语句的形式:
goto语句使程序无条件跳转到标签为 label的语句处执行。
标签标识符独立于变量和其他标识符的名字,它们之间不会相互干扰。但两者必须位于同一个函数内,同时 goto语句也不能将程序的控制权从变量的作用域之外转移到作用域之内。
 
  • C++
  • 简单语句和作用域函数基础
    目录