目录
- 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-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
 - 各种循环结构的结束条件(防止死循环)
 

评论(0)