C++控制结构详情
目录
- 1、顺序结构
- 2、选择结构
- 2.1、if语句
- 2.2、switch语句
- 3、循环结构
- 3.1、while语句
- 3.2dowhile语句
- 3.3for语句
- 4、总结
文章图片
C++的控制结构和其它编程语言类似,共包含以下三种:
- 顺序结构
- 选择结构
- 循环结构
1、顺序结构 即表达式按照上下顺序执行,比如下面的代码:
printf("Hello"); printf("\n"); printf("World");
程序会依次输出“
Hello World
”。2、选择结构 选择结构可以使用if语句或者switch语句实现,下面分别记录。
2.1、 if语句
采用if实现的选择结构含有3种情况:
- 单层选择if-else
- 嵌套判断if-else
- 多重判断if-else if
if (表达式) 语句1比如判断x是否大于10,若是则输出yes,否则输出no:
else 语句2
int x = 100; if (x>10){printf("yes"); }else {printf("no"); }
此外,
if-else
内部可以嵌套新的判断,比如判断if x>10以后可以继续判断x和20的关系,else 后可以判断x继续判断x和5的关系:int x = 100; if (x>10){if (x>20){printf("x>20"); }}else {if (x<5){printf("x<5"); }}
除了上述两种方式,还可以使用if-else if对某种条件进行多次判断,当前面的判断不成立时继续判断后面:
if (x>50){printf("x>50"); }else if (x>30){printf("x>30"); }else{printf("all no"); }
2.2 、switch语句
当需要判断的条件是同一个表达式的值时可以使用switch语句,比如判断x具体为什么值:
int x = 100; switch (x){case 10:{printf("x= 10"); break; }case 100:{printf("x = 100"); break; }default:{printf("unknown"); }}
switch
语句使用有两个注意事项,第一是case
中使用break才能保证后面的case不被执行;第二是case后的表达式是必须是常量表达式,比如整型、字符型或者枚举型。3、循环结构 C++中包含3种循环语句:while、do while以及for,下面分别介绍。
3.1 、while语句
while语句表示当满足某个条件时,语句被循环执行,一般需要在循环体内部改变表达式的值,语法如下:
while (表达式) 语句比如当x<10时不断在屏幕显示“yes”,并将x进行加1直到循环停止:
int x = 1; while (x<10){printf("yes\n"); x ++; }
3.2 do while 语句
尽管
do while
和while
的功能十分类似,但是C++单独使用do while肯定是有原因的。do while的语法为:do 语句同样采用x<10时不断在屏幕显示yes为例:
while (表达式)
int x = 1; do {printf("yes\n"); x ++; }while(x<10);
while和do while的区别是先执行语句还是先判断表达式。do while也经常在循环体内部改变判断条件表达式的值,比如上述代码中的x++一行。
3.3 for语句
在python中for经常作为迭代功能使用,这和C++的for有些不同,
其语法如下:
for(初始语句;判断条件;更新)执行顺序为:首先执行“初始语句”,当满足“判断条件”时就去执行“循环主体语句”,否则就退出循环,每次“循环主体语句”执行后进行“更新”,重复前述操作。下面展示了在x<10时不断的在屏幕输出No:
{循环主体语句}
for (int x=1; x<10; x++){printf("No\n"); }
4、总结 每学一点都再次印证了C++确实很复杂这一点,需要特别注意的有:
- switch中的break
- 各种循环结构的结束条件(防止死循环)
推荐阅读
- C++实现简单的计算器功能
- 笔记|工业缺陷检测项目实战(一)——基于opencv的工件缺陷检测C++实现
- C++ STL Merge的用法
- c++|虚函数和多态性
- 面经|美团后端一二面c++
- 图书管理系统简易版C++
- 一起来学习C++的函数指针和函数对象
- c/c++技术|小白 C++ 入门到大神发疯学习路线
- C语言与C++编程|C语言学习方法、学习平台及项目推荐
- C++|C++应用程序列表(来自Bjarne Stroustrup)