C语言-分支循环语句

1.开始

        C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤ if 、 switch 实现选择结构,使⽤ for 、 while 、 do while 实现循环结构

2.分支语句

2.1if语句

        2.1.1if语句的实现与运行方式

        if语句的语法形式如下

if(表达式)
    语句;

         在c语言中,非0为真,0为假。

         如果表达式为真,则运行语句,若为假,则不运行语句。

        2.1.2else语句的实现与运行方式

         else与if相配,是选择结构的另一条分支。

         如一个正整数,不是奇数,就是偶数。

        else的语法形式:

if(表达式)
    语句1;
else
    语句2;
        2.1.3分支中的多条语句

        在c语言中,if与else默认是只跟一条语句的,如:

if(表达式)
    语句1;
    语句2;

        语句2不受表达式的控制,此时无论表达式是否正确,语句2一直都会执行。

        若要使if控制多条语句,需要加上“{}”,else同理。

if(表达式)
{
    语句1;
    语句2;
}
        2.1.4嵌套if(else if)

        在if else语句中,else可以与另一个if连用形成多重判断。

if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

         注:在if else语句中,从上到下运行,若遇见满足条件的表达式,则其他分支不会执行。

        2.1.5悬空else问题

        在if与else语句中可能会有多个if和else出现,而无论怎样,else总是与最邻近的if匹配。

if(表达式1)
    if(表达式2)
        语句1;
else
    语句2;

        如图,else是与第二个if相匹配,而不是第一个。

2.2switch语句

        2.2.1switch语句的语法形式

         除if语句外,switch也可以实现分支结构。

        且与if相比,用switch来实现多重分支更加的便捷。

switch(整形表达式)
{
 case 整形常量表达式1:
    语句1;
    break;
 case 整形常量表达式2:
    语句2;
    break;
 default:
    语句2;
    break;
}

        举个例子,如输入数字1-3,打印对应的星期几。

#include <stdio.h>
int main()
{
    int day=0;
    scanf("%d",&day);
    switch(day)
    {
    case 1:
        printf("星期一");
        break;
    case 2:
        printf("星期二");
        break;
    case 3:
        printf("星期三");
    }
    return 0;
}

         此时输入1,则会打印星期一;输入2,则会打印星期二。此后同理。

        注意:

                1.switch()的括号内必须是整形表达式。

                2.case语句后面必须是整形常量表达式。

        2.2.2switch中的break

        与if else语句不同的是,当switch中遇到了满足条件的表达式时,会直接从那条case直接往下运行,知道遇到break或者时switch语句结束,此时可能会运行到别的case语句中的代码,所以运用break在switch语句中显得尤其重要。

        唯有合理的运用break语句,才能在switch语句中实现真正的分支。

        拿上题的例子,如果case语句中未加break

#include <stdio.h>
int main()
{
    int day=0;
    scanf("%d",&day);
    switch(day)
    {
    case 1:
        printf("星期一");
    case 2:
        printf("星期二");
    case 3:
        printf("星期三");
    }
    return 0;
}

        则输入1,就会打印“星期一星期二星期三”,输入2,就会打印“星期二星期三”

        如此便不能满足题目的要求,可见break在switch语句中的重要性。

        2.2.3switch的default

        在switch中,default的功能类似于if else语句中的else,在有不满足switch中所有case的情况出现,则可以运用default。

        还是那个例子,输入数字1-7,打印对应的星期几。

        若有出现超出数字7的情况,则我们就可以提示:“输入错误,请重新输入”。

#include <stdio.h>
int main()
{
    int day=0;
    scanf("%d",&day);
    switch(day)
    {
    case 1:
        printf("星期一");
        break;
    case 2:
        printf("星期二");
        break;
    case 3:
        printf("星期三");
    case 4:
        printf("星期四");
        break;
    case 5:
        printf("星期五");
        break;
    case 6:
        printf("星期六");
        break;
    case 7:
        printf("星期天");
        break;
    default:
        printf("输入错误,请重新输入");
    }
    return 0;
}
        2.2.4switch中case与default的顺序问题

        在switch中,其实case与default的顺序并没有要求,可随便排序。

        不过我们一般将default语句排在最后。

3.循环语句

3.1while循环

        while的语法形式为

while(表达式)
    语句;

        它与if的运行模式很相似,若括号内表达式为0则循环结束,不为0则循环继续。

3.2for循环

        for循环的语法形式为

for(循环变量初始化;循环结束条件判断;循环变量调整)
    语句;

3.3do-while循环

        与while循环和for循环不同的是,do-while循环时先循环再判断

        它先进入循环体执行命令,后再依据表达式判断是否继续进行循环

do
{
    语句
}while(表达式);

4.break和continue语句

4.1关于break和continue

        在循环中有两个重要的关键字——break和continue,它们的作用时用来提前终止循环。

        break是用来永久的终止循环,当break被执行,就会跳出循环,执行下面的代码。

        注:break只能跳出一层循环,若要跳出多层循环需要用到多个break。

        continue的作用是用来跳过循环中continue后面的代码,快速进入下一次循环的判断。

5.goto语句

        C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 来说goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程,例如一次跳出两层或多层循环。 

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值