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++实现LeetCode(347.前K个高频元素)
栏 目:C代码
下一篇:C++实现校园导游系统
本文标题:C++控制结构详情
本文地址:http://www.codeinn.net/misctech/220691.html