C++控制结构详情
作者:机器学习入坑者
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-else实现,其语法如下:
if (表达式) 语句1
else 语句2
比如判断x是否大于10,若是则输出yes,否则输出no:
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 语句
while (表达式)
同样采用x<10时不断在屏幕显示yes为例:
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++控制结构详情的文章就介绍到这了,更多相关C++控制结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!