• 【C语言基础】Chap. 5. 语句基础


    1. 各类语句

    C语言是结构化的程序设计语言,而结构化指的是现实世界事物发展逻辑的抽象,即顺序结构、选择结构和循环结构。

    C语言的大多数语句属于以下3大类。

    • 分支语句

    • 循环语句

    • 跳转语句

    此外还有复合语句(compound statement,把几条语句组合成一条语句)和空语句(void statement,不执行任何操作)。

    学习这些语句之前需要了解是语句什么。

    语句是程序运行时执行的命令。C语言规定每条语句都要以分号结尾(但也存在少许例外),因为语句可以连续占用多行,需要用分号来确定其结束位置——而指令通常只占用一行,因此不需要分号结尾。

    因此可以简单理解为:在C语言中,由一个分号;隔开的就是一条语句。

    2. 分支语句/选择语句

    在一组可选项中选择一条特定的执行路径的语句,称为分支语句/选择语句(selection statement)。

    2.1 if语句

    语法结构如下:

    1. 第一种:
    2. if(表达式)
    3. 语句;
    4. 第二种:
    5. if(表达式)
    6. 语句1;
    7. else
    8. 语句2;
    9. 第三种(多分支/级联式):
    10. if(表达式1)
    11. 语句1;
    12. else if(表达式2)
    13. 语句2;
    14. else
    15. 语句2;

    当表达式结果为真时,其对应的分支就会执行。

    那么C语言中如何表达真假呢?在C89规范中,非0就是真(包括-1等负数),0就是假。

    C99中提供了_Bool型和能够提供bool宏的头,但由于本文主要讲C89规范,因此先不进行讲解。实际上,C99中的truefalse也只是使用了无符号整型的10而已。)

    因此括号中的表达式可以使用各种语句,包括关系操作符等来计算。

    补充1

    • 级联式if语句不是新的语句类型,而是普通的if语句,只不过碰巧有另外一条if语句作为else下的子句。

    • 如果要一个分支下要执行多条语句,则应该使用代码块{}来组成复合语句。

    注意:代码块{}后不需要加分号;

    补充2:悬空else问题


     

    1. int a = 0;
    2. int b = 2;
    3. if (a == 1)
    4. if (b == 2)
    5. printf("yes\n");
    6. else
    7. printf("no\n");

    上面这段代码的else对应的是哪个if呢?

    C语言遵循的规则是,else子句应该属于离它最近的且还未和其他else匹配的if语句。

    因此这里的else会被判断为第二个if语句的分支。

    这表明,想要使分支语句有清晰的逻辑和结构,则最好加上代码块{}

    另外,某些if...else...表达式可以被条件表达式(三元操作符)替代。

    2.2 switch语句

    2.2.1 介绍

    switch也是一种分支语句,常常用于多分支的情况,比如将表达式和一系列值进行比较,从中找出当前匹配的值。

    其结构为:

    1. switch(整型表达式) //注意,这里必须是 整型,int long 甚至 char 都行,但 float 不可以
    2. {
    3. 语句项;
    4. }

    语句项里是一些case语句,如下:

  • 相关阅读:
    python:OderedDict函数
    为何抢跑了成长型企业SaaS赛道?先看看用友YonSuite有多了解企业
    华为云云耀云服务器L实例评测|云耀云服务器L实例搭建个人镜像站
    JUC工具类_CyclicBarrier与CountDownLatch
    base64_encode()和base64_decode(),URL的加密解密详解
    vue导出Excel
    在k8s中部署高可用程序实践和资源治理
    Consul(注册中心)部署
    ERP编制物料清单 金蝶
    Java秒杀系统方案优化
  • 原文地址:https://blog.csdn.net/m0_73088370/article/details/126622511