C语言之流程控制

常用的流程图符号

流程框图

  • 起止框用于表示流程的开始或结束;
  • 输入/输出框用平行四边形表示,在平行四边形内可以写明输入或输出的内容;
  • 判断框用菱形表示,它的作用是对条件进行判断,根据条件是否成立来决定如何执行后续的操作;
  • 处理框用矩形表示,它代表程序中的处理功能,如算术运算和赋值等;
  • 流程线用实心单向箭头或直线表示,可以连接不同位置的图框,流程线的标准流向是从左到右和从上到下,可用直线表示,非标准流向的流程线应使用箭头指示方向;
  • 连接点用圆形表示,用于流程图的延续。

在C语言中0代表假,非0代表真

顺序结构语句

最常见的执行结构,计算机语言往大了说都是属于顺序结构
顺序结构:所有语句从上到下顺序执行

选择结构语句

if条件语句

  • if语句
    1
    2
    3
    4
    if (条件语句)
    {
    //代码块
    }

if语句

  • if···else语句
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (判断条件)
    {
    //执行语句1
    ···
    }
    else
    {
    //执行语句2
    ···
    }

if语句

  • if···else if···else语句
    else永远是和最近的一条if语句配对
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    if (判断条件1) 
    {
    //执行语句1
    }
    else if (判断条件2)
    {
    //执行语句2
    }
    ···
    else if (判断条件n)
    {
    //执行语句n
    }
    else
    {
    //执行语句n+1
    }

ifelseifelse

switch条件语句

switch作为一种条件选择语句,主要适用于具体值的判断,而if适用于范围值的判断,侧重点不同。
switch是为多重选择准备的,遇到break语句,switch就终端执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch (表达式)
{
case 目标值1:
//执行语句1
break;
case 目标值2:
//执行语句2
break;
···
case 目标值n:
//执行语句n
break;
default:
//执行语句n+1
break;
}

switch将表达式的值与case中的值对比,执行与之相匹配的case内语句,直到遇到break退出。

循环结构语句

在符合某一条件的情况下,不断地重复某一段代码,这种叫做循环语句

while循环语句

1
2
3
4
5
while (循环条件)
{
//执行语句
···
}

while

do-while循环语句

1
2
3
4
5
do 
{
//执行语句
···
} while(循环条件);

while

for循环语句

1
2
3
4
5
for(初始化表达式; 循环条件; 操作表达式)
{
//执行语句
···
}

循环嵌套

循环嵌套在各种语言中都很常用
外层循环控制行,内层循环控制列

1
2
3
4
5
6
7
8
9
10
11
*
**
***
****
*****
******
*****
****
***
**
*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int i;
int j;
for (i = 0; i < 11; i++)
{
if (i < 6)
{
for (j = 0; j <= i; j++)
{
printf("*");
}
}
else
{
for (j = 11 - i; j > 0; j--)
{
printf("*");
}
}
printf("\n");
}
1
2
3
4
5
    *
***
*****
*******
*********
1
2
3
4
5
6
7
8
9
10
11
12
int i;
int j;
for (i = 0; i < 5; i++)
{
for (j = 4 - i; j > 0; j--)
{
printf(" ");
}
for (j = 0; j < (i - 1) * 2 + 3; j++)
printf("*");
printf("\n");
}

跳转语句(break、goto、continue)

  • break语句
    在switch条件语句和循环语句中都可以使用break语句
    当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构
    当它出现在循环语句中,作用是跳出当前循环语句,执行后面的代码

  • goto语句
    尽量不要在程序当中使用goto语句
    当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想要跳出外层循环则需要对外层循环添加标记,然后使用goto语句

    1
    2
    3
    4
    5
        int i = 0;
    start:
    scanf("%d", &i);
    if(i == 1)
    goto start;
  • continue语句
    在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句

Donate comment here