亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

什么是 C 语言条件语句?

C 语言条件语句 用于根据条件做决策。无条件时语句顺序执行;加上条件后,执行流程随条件求值结果改变,这在 C 语言中称为决策制定。

C 语言通过以下两种构造实现条件语句:

1. if 语句

2. if-else 语句

也称为分支,因为程序根据条件求值结果决定执行哪条语句。

本教程学习内容:

if 语句

if 是最强大的条件语句之一,负责改变程序执行流程。if 总带条件,先求值条件,再决定是否执行语句体。语法:

if (condition) instruction;

条件求值结果为真(非零)或假(零)。instruction 可以是单条语句或用花括号 { } 包裹的代码块。

下面程序演示 if 用法:

#include<stdio.h>
int main() {
    int num1=1;
    int num2=2;
    if(num1<num2) // 测试条件
    {
        printf("num1 is smaller than num2");
    }
    return 0;
}

输出:

num1 is smaller than num2

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

  1. 程序初始化 num1=1、num2=2
  2. 用关系表达式判断大小,num1<num2 为真
  3. 执行 if 块内打印语句,随后程序正常结束

关系运算符

C 语言提供六个关系运算符构造布尔表达式,返回真/假:

< 小于

<= 小于等于

> 大于

>= 大于等于

== 等于

!= 不等于

注意:相等测试(==)与赋值运算符(=)不同,混淆是极常见错误。

示例:

int x = 41;
x = x + 1;
if (x == 42) {
    printf("You succeed!");
}

输出:

You succeed

记住:求值为非零的条件视为真。

int present = 1;
if (present) printf("There is someone present in the classroom \n");

输出:

There is someone present in the classroom

if-else 语句

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

if-else 是 if 的扩展形式,通用结构:

if (test-expression) {
    True block of statements
}
Else {
    False block of statements
}
Statements;

若测试表达式为真,执行真块;为假,执行假块。执行完毕自动跳转到 if 块外后续语句。

示例程序判断变量值是否小于 10:

#include<stdio.h>
int main() {
    int num=19;
    if(num<10) {
        printf("The value is less than 10");
    } else {
        printf("The value is greater than 10");
    }
    return 0;
}

输出:

The value is greater than 10

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

  1. 变量 num=19,用 if-else 判断是否大于 10
  2. 条件 num<10,真块先执行
  3. num 大于 10,条件为假,执行 else 块,输出“greater than 10”

C 语言允许多个 if-else 相互嵌套,称为嵌套 if-else。

条件表达式(三元运算符)

用 ?: 运算符表达 if-else,仅各关联一条语句。

示例:

#include <stdio.h>
int main() {
    int y;
    int x = 2;
    y = (x >= 6) ? 6 : x;/* 等价于:if (x >= 5) y = 5; else y = x; */
    printf("y =%d ",y);
    return 0;
}

输出:

y =2

嵌套 if-else 语句

需要一系列决策时使用嵌套 if-else,即在一个 if-else 内部再使用 if-else。

示例程序:

#include<stdio.h>
int main() {
    int num=1;
    if(num<10) {
        if(num==1) {
            printf("The value is:%d\n",num);
        } else {
            printf("The value is greater than 1");
        }
    } else {
        printf("The value is greater than 10");
    }
    return 0;
}

输出:

The value is:1

程序用嵌套 if-else 判断数字大小并打印结果。

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

  1. 声明 num=1,外层 if 判断是否 <10,为真进入内层
  2. 内层判断 num==1,为真执行 if 块打印数值
  3. 程序成功退出

尝试修改变量值观察行为变化。

注意: 嵌套 if-else 缩进至关重要,多层结构下良好缩进才易读。

嵌套 else-if 语句(else-if 阶梯)

多分支决策时使用 else-if 阶梯。通用语法:

if (test-expression 1) {
    statement1;
} else if (test-expression 2) {
    Statement2;
} else if (test-expression 3) {
    Statement3;
} else if (test-expression n) {
    Statement n;
} else {
    default;
}
Statement x;

自上而下求值,首个为真执行对应语句;全假则执行默认 else。

实例程序按分数输出等级:

#include<stdio.h>
int main() {
    int marks=83;
    if(marks>75){
        printf("First class");
    } else if(marks>65){
        printf("Second class");
    } else if(marks>55){
        printf("Third class");
    } else{
        printf("Fourth class");
    }
    return 0;
}

输出:

First class

C 语言条件语句精讲:IF、IF-ELSE 与嵌套 IF-ELSE 完全指南

  1. 初始化 marks=83,else-if 阶梯依次判断
  2. 首个条件 marks>75 为真,打印 "First class"
  3. 若首条件假则比较第二条件,以此类推
  4. 全假则执行默认 else

修改数值观察输出变化。

总结


C语言

  1. C# 表达式、语句与代码块:全面指南与实战示例
  2. 掌握 C# 条件逻辑:if、if-else、if-else if 与嵌套 if 语句完全指南
  3. 掌握 C++ 条件语句:if、if-else、嵌套 if 与多重分支全解析
  4. C 语言条件语句精通:if、else、嵌套与多重分支
  5. C++ 运算符全解析:类型、示例与示例程序
  6. 掌握 C++ switch-case:语法、用法与实战示例
  7. C++ 结构体详解:定义、初始化、指针、函数参数与局限性
  8. C++ 类与对象实战指南:封装、构造函数、析构函数与访问控制
  9. 掌握 C++ std::list:语法、函数与实战示例
  10. C++ Struct 与 Class 核心差异、语法及最佳实践
  11. C# 枚举——定义、示例与用法详解
  12. 精通 Java if…else:控制流全解析