C语言流程控制(各种结构)

一、顺序结构

        自上至下,自左至右依次执行。

二、分支结构

        当程序执行到某个位置时,程序后序的执行方向由某个条件决定,多选其一。

        1.if分支
                1.1 if简单分支

                注意:1.if可以单独使用,但是else不能单独使用;

                            2.{}语法上可以省略,但if语句后只能接一条语句。推荐加上{},可读性更高,可以接更多语句,适用范围更广。

                           3.if ()后不能加‘;’

if (逻辑值)
{
    语句块1;
}
else
{
    语句块2;
}
                1.2 if阶梯分支

        注意:1.if可以单独使用,但是else if、else不能单独使用;

                    2.if ()、else if()后不能加‘;’

                    3.{}语法上可以省略,但if语句后只能接一条语句。推荐加上{},可读性更高,可以接更多语句,适用范围更广。

                     4.阶梯的判断顺序,一般根据实际场景下,不同情况下出现的概率进行递减的排序。

if (逻辑值)
{
    语句块1;
}
else if (逻辑值)
{
    语句块2;
}
else if (逻辑值)
{
    语句块3;
}
...
else
{
    语句块n;
}
                1.3 if嵌套分支

                注意:1.嵌套最好不超过三层,阅读不太方便。

                           2.当if分支内没有{},else、else if会向上匹配遇到的第一个并且结合后符合语法的if结合起来。

if (逻辑值)
{
    if (逻辑值)
    {
        if (逻辑值)
        {
        
        }
    }
}
else
{

}
        2.switch分支

                    注意:1.num的值,必须是一个整形

                    2.case后:必须是一个整形常量(需要的是一个确定的值),值不能相等

                    3.break一般情况下不能漏写

switch(num)
{
    case 0:
        (语句);
        break;
    case 1;
        ();
        break;
    ...
    case n;
        ();
        break;
    deflaut;
}

三、循环结构

        当程序执行到某个位置时,程序会反复执行某段代码,直到循环满足退出条件。

        适用情况:1.执行重复的代码

                          2.执行有规律的代码

                           3.暴力穷举

        循环三要素:

                1.循环体:需要重复执行的逻辑代码

                2.结束条件:循环在什么时候结束

                3.推动循环趋向结束的代码。

        1.for循环
             1.1 基本形式

         注意:1.表达式1、表达式2、表达式3之间使用‘;’隔开

                   2.for()后不要加分号

                    3.for( ; ;)不写时默认死循环

        表达式1:初始化,进入循环之前的准备工作

        表达式2:循环结束条件:决定循环在什么时候退出

        表达式3:循环变量改变:推动循环趋向结束的代码

        执行过程:运行表达式1,运行表达式2(若其值为真,则执行for语句中指定的内嵌语句,然后执行第三步;若其值为假,则结束循环,执行循环后的操作),运行表达式3,转回执行表达式2,循环结束,执行for'语句后 的语句。

                for (表达式1;表达式2;表达式3)

                {

                        语句块;

                }
                1.2 嵌套形式

                外层循环一次,内层循环一遍

                举个例子:打印一份九九乘法表,表从左下,右下,右上

        for (表达式1;表达式2;表达式3)

        {
                for(表达式a;表达式b;表达式c)
                {

                        语句块A;

                }

        }
        2.while循环

                注意:1.for循环 可以和while循环等价转换;

                            2.当不明确循环执行的次数或循环的上下限时,一般使用for循环

                                当不明确循环执行的次数或循环的上下限,但是明确循环结束时的状态时,一般使用while循环。

                           3.while()后不能接‘;’

while (表达式1(逻辑值))
{
    语句块A;
}
        3.do ... while 循环

            注意:1.先执行一次循环体,再去判断结束条件

                        2.循环的结束条件要依赖循环体的执行结果

例子:用do while写一个大小写字母转换,并且输入‘q'和’Q‘时退出

do{
    语句块A;
}while(表达式1);
        4.利用goto实现的循环(禁止使用goto(出错处理)执行循环,可读性差)

                goto:1.可以跳转到程序的任意位置开始执行

                           2.过度使用goto语句,会严重破坏程序的逻辑结构,极大降低可读性。

四、辅助控制

        1.break

                1)在switch语句中,用来作为某个case:的出口,跳出switch语句

                2)在循环体内,跳出离它最近的循环

        2.continue

                1)在循环体内执行时,短路当次循环体的后续执行

        3.return

                1)函数结束返回执行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值