C++从入门到精通 第2章:C++的控制结构

151 阅读3分钟

选择结构

什么是选择结构

选择结构就是根据不同的条件,进入不同的分支(即执行不同的代码)

if-else选择节构

语法

if(表达式1)
{
    语句块1
}
else if(表达式2)
{
    语句块2
}
···
if(表达式n-1)
{
    语句块n-1
}
else if(表达式n)
{
    语句块n
}
graph TD
A(开始) --> B{表达式1}
B-->|ture|C[语句块1]
C-->J(结束)
B-->|false|D{表达式2}
D-->|true|E[语句块2]
E-->J
D-->|false|F[...表达式n-1]
F-->|true|G{语句块n-1}
G-->J
F-->|false|H{表达式n}
H-->|true|I[语句块n]
I-->J
H-->|false|J

注意

1.if-else里的分支数可以是任意个

2.if后面的表达式一定要用“()”括起来

3.语句块一定要用“{}”括起来

4.if-else是可以嵌套的,if里面和else里面都可以有

switch选择节构

语法

switch(可枚举的表达式)
{
    case 常量1:
    语句块
    break;
    case 常量2:
    语句块
    break;
    ···
    case 常量n:
    语句块
    break;
    default:语句块
}
graph TD
A(开始) --> B{可枚举的表达式等于}
B-->|常量1|C[语句块]
C-->a(结束)
B-->|常量2|D[语句块]
D-->a
B-->|...常量n|E[语句块]
E-->a
B-->|都不等于|F[语句块]
F-->a

注意

1.switch可以没有default块

2.switch中case没有break就会继续执行,直到遇到break或switch结束

循环结构

什么是循环结构

循环结构就是如果一个条件成立则执行一段代码,否则跳出

for循环结构

语法

for(表达式1;表达式2;表达式3)
{
    语句块
}
graph TD
A(开始)--> B[计算表达式1]
B-->C[表达式2]
C-->|true|D[语句组]
D-->E[计算表达式3]
E-->C
C-->|false|F(结束)

注意

for循环的表达式可以不写,但有可能会死循环,一定要及时按下ctrl+C终止程序,否则系统资源会被耗尽

for循环可以用break终止(只能跳出一层)

while循环结构

语法

while(表达式)
{
    语句组
}
graph TD
A(开始)--> B[表达式]
B-->|true|C[语句组]
C-->B
B-->|false|F(结束)

注意

while循环的表达式可以换成true,但是会死循环,一定要及时按下ctrl+C终止程序,否则系统资源会被耗尽

while循环可以用break终止(只能跳出一层)

当循环变量要加1时,最好选择前置++

do-while

语法

do
{
    语句组
}
while(表达式)
graph TD
A(开始)--> B[语句组]
B-->C[表达式]
C-->|false|B
C-->|true|D(结束)

注意

do-while如果想跟while一样的效果,需要吧while的条件反过来

死循环

什么是死循环

如果循环的条件一直成立,就会出现死循环

死循环的危害

死循环如果不及时终止的话(按下ctrl+C或者在循环里加break),会导致系统资源耗尽,导致其他程序无法运行

break

break可以出现在任何一个循环里(for、while、do-while),它的作用是跳出循环(只能跳出一层)

continue

continue可以出现在任何一个循环里(for、while、do-while),它的作用是跳过本次循环(只能作用于一层)

goto

goto可以出现在任何地方,它的作用是无条件到某一个“句子标号”,句子标号的命名规则与变量相同

一般来说,goto会让代码可读性变差,所以尽量不要使用goto

小结

1.值可以枚举的表达式,都可以作为switch里面的条件表达式

2.分支很多的情况下,尽量使用switch

3.for循环里,如果循环变量需要加1,最好使用前置++

4.do-while循环能保证循环至少执行一次

5.使用循环时,要避免出现死循环

6.break可以跳出一层循环,continue可以跳过本次循环,goto要尽量少用