• C语言之判断与循环语句知识点总结


    目录

    if选择结构

    单选择结构

    双选择结构

    多选择结构

    代码示例

    switch case语句

    break语句的用法

    while循环语句

    do-while循环语句

    for循环语句

    循环的嵌套

    continue语句


    if选择结构

    当我们需要根据条件的成立与否来执行不同的代码块时,可以使用C语言中的if选择结构。if选择结构可以根据判断条件的结果来决定程序的执行路径,从而实现不同的逻辑分支。

    在C语言中,if选择结构有三种形式:单选择、双选择和多选择。下面逐一介绍这三种形式。

    单选择结构

    单选择结构用if语句实现,它的基本语法如下:

    1. if (条件表达式)
    2. {
    3. // 当条件成立时执行的代码块
    4. }

    其中,条件表达式是一个逻辑表达式,如果它的值为真(非零),则执行if语句后的代码块;如果它的值为假(0),则跳过if语句后的代码块。

    双选择结构

    双选择结构用if-else语句实现,它的基本语法如下:

    1. if (条件表达式)
    2. {
    3. // 当条件成立时执行的代码块
    4. }
    5. else
    6. {
    7. // 当条件不成立时执行的代码块
    8. }

    条件表达式的值为真时,执行if语句后的代码块;条件表达式的值为假时,执行else语句后的代码块。

    多选择结构

    多选择结构用if-else if-else语句实现,它的基本语法如下:

    1. if (条件表达式1)
    2. {
    3. // 当条件1成立时执行的代码块
    4. }
    5. else if (条件表达式2)
    6. {
    7. // 当条件2成立时执行的代码块
    8. }
    9. else if (条件表达式3)
    10. {
    11. // 当条件3成立时执行的代码块
    12. }
    13. ...
    14. else
    15. {
    16. // 当以上条件都不成立时执行的代码块
    17. }

    多选择结构中,条件表达式按顺序进行判断,只有第一个为真的条件对应的代码块会被执行。如果所有条件都不成立,则执行else语句后的代码块。

    在实际应用中,可以根据具体需求灵活运用这些选择结构。需要注意的是,条件表达式的值应该是一个逻辑值(0或非零),并且代码块的花括号是必需的,即使代码块只有一行。

    代码示例

    1. #include
    2. int main() {
    3. int num = 10;
    4. if (num > 0) {
    5. // 单选择:当num大于0时执行以下代码块
    6. printf("数字为正。\n");
    7. } else if (num < 0) {
    8. // 多选择:当num小于0时执行以下代码块
    9. printf("数字为负数。\n");
    10. } else {
    11. // 双选择:当num等于0时执行以下代码块
    12. printf("数字为零。\n");
    13. }
    14. return 0;
    15. }

    在这个示例中,我们首先判断num是否大于0,如果是,则打印"数字为正。"。如果不是,则继续判断num是否小于0,如果是,则打印"数字为负数。"。如果num既不大于0也不小于0,那么它必定等于0,于是打印"数字为零。"。

    switch case语句

    当我们需要根据不同的取值来执行不同的代码块时,可以使用C语言中的switch case语句。switch case语句是一种多选择结构,它可以根据表达式的值来选择执行相应的代码块。

    switch case语句的基本语法如下:

    1. switch (表达式)
    2. {
    3. case1:
    4. // 当表达式的值等于值1时执行的代码块
    5. break;
    6. case2:
    7. // 当表达式的值等于值2时执行的代码块
    8. break;
    9. case3:
    10. // 当表达式的值等于值3时执行的代码块
    11. break;
    12. ...
    13. default:
    14. // 当表达式的值与上述所有值都不匹配时执行的代码块
    15. break;
    16. }

    switch关键字后面的表达式的值会与各个case后面的值进行比较,如果匹配,则执行对应的代码块。如果没有匹配的值,可以使用default关键字指定一个默认的代码块。在每个case的代码块末尾使用break关键字来终止switch语句的执行,否则会继续执行下一个case的代码块,直到遇到break或整个switch语句结束。 

    以下是一个简单的示例来说明switch case语句的用法:

    1. #include
    2. int main() {
    3. int day = 4;
    4. switch (day) {
    5. case 1:
    6. printf("Monday\n");
    7. break;
    8. case 2:
    9. printf("Tuesday\n");
    10. break;
    11. case 3:
    12. printf("Wednesday\n");
    13. break;
    14. case 4:
    15. printf("Thursday\n");
    16. break;
    17. case 5:
    18. printf("Friday\n");
    19. break;
    20. default:
    21. printf("Weekend\n");
    22. break;
    23. }
    24. return 0;
    25. }

    在这个示例中,我们根据变量day的值来选择打印相应的星期几。因为day的值为4,所以匹配到了case 4,并执行了对应的代码块,打印"Thursday"。

    需要注意的是,switch case语句只能用于判断整型或字符型的值,不能用于判断浮点数、字符串等其他类型的值。每个case后面的值必须是一个常量表达式,而不能是变量。

    break语句的用法

    在C语言中,break语句是一种控制语句,用于终止循环或switch语句的执行。当程序执行到break语句时,会立即跳出当前的循环或switch语句,并开始执行下一条语句。

    break语句通常用于以下两种情况:

    1、终止循环

    当我们需要在满足某个条件时退出循环时,可以使用break语句。例如,在一个for循环中,当遇到某个特定条件时,我们希望立即退出循环,可以这样写:

    1. for (int i = 0; i < 10; i++) {
    2. if (i == 5) {
    3. break;
    4. }
    5. printf("%d\n", i);
    6. }

    上述代码中,当i等于5时,执行break语句,跳出for循环,不再执行后续的代码块。

    2、终止switch语句

    在C语言中,switch语句中的每个case后面都需要使用break语句来终止该case的执行,否则程序将继续执行下一个case的代码块。例如:

    1. switch (num) {
    2. case 1:
    3. printf("One\n");
    4. break;
    5. case 2:
    6. printf("Two\n");
    7. break;
    8. default:
    9. printf("Other\n");
    10. break;
    11. }

     在上述代码中,当num的值为1时,执行case 1的代码块,并在末尾使用break语句来终止该case的执行。如果没有break语句,程序将继续执行下一个case的代码块,直到遇到break或switch语句结束。

    需要注意的是,break语句只能用于循环语句或switch语句中,不能在其他地方使用。同时,当嵌套多个循环或switch语句时,break语句只会终止最内层的循环或switch语句的执行,如果需要终止外层的循环或switch语句,可以使用标签(label)和goto语句来实现。

    while循环语句

    在C语言中,while循环是一种常用的迭代结构,它会根据给定的条件重复执行一段代码块,直到条件不再满足为止。while循环的基本语法如下:

    1. while (条件)
    2. {
    3. // 循环体代码块
    4. }

    在每次循环开始之前,会首先判断条件是否满足。如果条件为真(非零),则执行循环体代码块;如果条件为假(零),则跳过循环体,继续执行后续的代码。

    以下是一个简单的示例来说明while循环的用法:

    1. #include
    2. int main() {
    3. int i = 0;
    4. while (i < 5) {
    5. printf("%d\n", i);
    6. i++;
    7. }
    8. return 0;
    9. }

    运行结果:

    1. 0
    2. 1
    3. 2
    4. 3
    5. 4

     在这个示例中,我们使用while循环打印从0到4的整数。循环的条件是i < 5,当i小于5时,执行循环体代码块,打印i的值,并将i递增1。当i等于5时,条件不再满足,循环结束。

    需要注意的是,如果循环条件一开始就不满足,那么循环体代码块将不会执行,循环会被跳过。

    在使用while循环时,需要注意避免无限循环的情况。如果循环条件始终为真,循环将永远不会结束,这可能会导致程序陷入死循环,造成系统资源的浪费。因此,在编写while循环时,确保循环条件能够在某个时刻变为假,以便终止循环。

    do-while循环语句

    在C语言中,do-while循环是一种迭代结构,它与while循环相似,但是它会先执行一次循环体代码块,然后再根据给定的条件决定是否继续执行循环。do-while循环的基本语法如下:

    1. do {
    2. // 循环体代码块
    3. } while (条件);

    与while循环不同的是,do-while循环的条件是在循环体执行之后进行判断。即使条件不满足,循环体至少会被执行一次。

    以下是一个简单的示例来说明do-while循环的用法:

    1. #include
    2. int main() {
    3. int i = 0;
    4. do {
    5. printf("%d\n", i);
    6. i++;
    7. } while (i < 5);
    8. return 0;
    9. }

    运行结果:

    1. 0
    2. 1
    3. 2
    4. 3
    5. 4

    在这个示例中,我们使用do-while循环打印从0到4的整数。循环体代码块会先执行一次,然后再判断条件i < 5是否满足。只要条件为真,即i小于5,就会继续执行循环体,打印i的值,并将i递增1。当i等于5时,条件不再满足,循环结束。

    需要注意的是,与while循环一样,确保循环条件能够在某个时刻变为假,以便终止循环。否则,如果循环条件始终为真,就会导致无限循环的情况。

    do-while循环的一个常见应用是在需要至少执行一次循环体的情况下,再根据条件进行后续的迭代。

    for循环语句

    在C语言中,for循环是一种常用的迭代结构,它允许我们根据给定的条件重复执行一段代码块,通常用于已知循环次数的情况。for循环的基本语法如下:

    1. for (初始化表达式; 循环条件; 更新表达式) {
    2. // 循环体代码块
    3. }

    for循环由三个部分组成:

    1. 初始化表达式(Initialization Expression):在循环开始前执行一次的表达式,用于初始化循环变量或设置初始条件。
    2. 循环条件(Loop Condition):在每次循环开始之前进行判断的表达式,如果条件为真(非零),则执行循环体代码块;如果条件为假(零),则跳出循环。
    3. 更新表达式(Update Expression):在每次循环结束后执行的表达式,用于更新循环变量或改变循环条件。

    以下是一个简单的示例来说明for循环的用法:

    1. #include
    2. int main() {
    3. for (int i = 0; i < 5; i++) {
    4. printf("%d\n", i);
    5. }
    6. return 0;
    7. }

    运行结果:

    1. 0
    2. 1
    3. 2
    4. 3
    5. 4

    在这个示例中,我们使用for循环打印从0到4的整数。初始化表达式为int i = 0,将循环变量i初始化为0。循环条件为i < 5,只要条件为真,即i小于5,就执行循环体代码块,打印i的值。更新表达式为i++,每次循环结束后将i递增1。当i等于5时,条件不再满足,循环结束。

    需要注意的是,for循环中的三个部分都可以省略,但分号必须保留。例如,如果我们只想实现一个无限循环,可以这样写:

    1. for (;;) {
    2. // 无限循环体代码块
    3. }

     在这种情况下,循环条件被省略,循环将一直执行下去,除非在循环体内部使用break语句或其他方式跳出循环。

    循环的嵌套

    在C语言中,循环的嵌套指的是在一个循环结构内部包含另一个循环结构。通过循环的嵌套,我们可以实现更复杂的迭代控制和逻辑处理。C语言支持将任意类型的循环结构嵌套在其他循环结构内部,包括for循环、while循环和do-while循环。

    下面是一个示例,展示了两个for循环的嵌套:

    1. #include
    2. int main() {
    3. for (int i = 0; i < 3; i++) {
    4. for (int j = 0; j < 2; j++) {
    5. printf("i = %d, j = %d\n", i, j);
    6. }
    7. }
    8. return 0;
    9. }

    运行结果:

    1. i = 0, j = 0
    2. i = 0, j = 1
    3. i = 1, j = 0
    4. i = 1, j = 1
    5. i = 2, j = 0
    6. i = 2, j = 1

    在这个示例中,我们使用两个for循环进行嵌套。外层循环控制变量i从0到2的迭代,内层循环控制变量j从0到1的迭代。内层循环的每次迭代都会完整地执行一遍,然后外层循环才会进入下一次迭代。这样,内层循环会在外层循环的每一次迭代中都被执行。

    循环的嵌套可以用于处理多维数据结构(如二维数组)的遍历、实现复杂的逻辑判断和控制流程等。然而,需要注意的是,循环的嵌套可能会导致代码可读性降低和性能问题,尤其是当嵌套层数过多或循环体内部的操作较为复杂时。因此,在使用循环的嵌套时,需要仔细考虑代码结构和性能影响。

    continue语句

    在C语言中,continue语句是一种控制流语句,用于跳过当前循环迭代中的剩余代码,直接进入下一次迭代。当循环体内部遇到continue语句时,该语句后面的所有代码都将被忽略,直接开始下一次迭代。

    continue语句通常用于在循环结构中进行条件判断,以便跳过某些不需要执行的迭代。以下是一个示例,展示了如何使用continue语句:

    1. #include
    2. int main() {
    3. for (int i = 0; i < 5; i++) {
    4. if (i == 2) {
    5. continue;
    6. }
    7. printf("%d\n", i);
    8. }
    9. return 0;
    10. }

     运行结果:

    1. 0
    2. 1
    3. 3
    4. 4

    在这个示例中,我们使用了一个for循环来迭代从0到4的整数。在每次迭代中,我们使用一个if语句来判断迭代变量i是否等于2。如果是,就执行continue语句,跳过当前迭代中的剩余代码;否则,就打印i的值。

    需要注意的是,continue语句只能出现在循环结构内部,否则会导致编译错误。此外,如果嵌套了多层循环结构,在使用continue语句时需要注意,它只会跳过当前循环结构中的代码,而不是跳出所有嵌套的循环结构。

  • 相关阅读:
    【AI视野·今日Robot 机器人论文速览 第六十五期】Mon, 30 Oct 2023
    prometheus学习
    Git 分支管理规范
    free pascal 调用 C#程序读 Freeplane.mm文件,生成测试用例.csv文件
    pytorch中的两个重要的自学函数 dir() ; help()
    305_C++_定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体
    Redis集群-主从复制、哨兵
    Flutter 中使用 extension 使项目更具可读性和效率 01
    SVProgressHUD和MBProgressHUD的优缺点与SVProgressHUD震动实现
    【SQL解析】- Druid SQL AST 01
  • 原文地址:https://blog.csdn.net/m0_74293254/article/details/134019153