当前位置: 首页 > news >正文

C语言的控制语句

C的控制语句

控制语句是C语言中用于控制程序执行流程的结构。通过控制语句,可以根据条件执行不同的代码块,或者重复执行某些操作,从而实现复杂的逻辑和功能。掌握控制语句是编写有效和高效C程序的关键。


1 条件控制

条件控制语句用于根据某些条件来决定程序的执行路径。C语言提供了多种条件控制结构,包括if语句、else if语句和switch语句。

1.1 if语句

if语句用于在条件为真时执行特定的代码块。它是最基本的条件控制语句。

语法

if (条件) {// 条件为真时执行的代码
}

示例与详细说明

#include <stdio.h>int main() {int num = 10;// 使用if语句判断num是否为正数if (num > 0) {printf("num 是一个正数。\n");}return 0;
}

输出

num 是一个正数。

详细解释

  • 条件表达式num > 0,如果num大于0,条件为真(1),则执行if块中的代码。

  • 执行流程

    1. 计算条件num > 0
    2. 如果条件为真,执行大括号 {} 内的代码。
    3. 如果条件为假,跳过if块中的代码。

更多示例

#include <stdio.h>int main() {int age = 18;// 判断是否成年if (age >= 18) {printf("你已成年,可以投票。\n");}return 0;
}

输出

你已成年,可以投票。
1.2 else if语句

else if语句用于在第一个if条件不满足时,提供多个条件判断的可能性。它允许在多个条件之间进行选择。

语法

if (条件1) {// 条件1为真时执行的代码
} else if (条件2) {// 条件2为真时执行的代码
} else {// 所有条件都不满足时执行的代码
}

示例与详细说明

#include <stdio.h>int main() {int score = 85;// 使用if-else if-else结构判断成绩等级if (score >= 90) {printf("成绩等级:A\n");} else if (score >= 80) {printf("成绩等级:B\n");} else if (score >= 70) {printf("成绩等级:C\n");} else if (score >= 60) {printf("成绩等级:D\n");} else {printf("成绩等级:F\n");}return 0;
}

输出

成绩等级:B

详细解释

  • 条件判断顺序
    1. 判断score >= 90,如果为真,输出A并跳过后续条件。
    2. 如果上一个条件为假,判断score >= 80,如果为真,输出B
    3. 依此类推,直到最后的else块。
  • 执行流程
    1. 依次检查每个ifelse if的条件。
    2. 当某个条件为真时,执行对应的代码块,并跳过剩余的条件检查。
    3. 如果所有条件都不满足,执行else块中的代码。

更多示例

#include <stdio.h>int main() {int temperature = 30;// 判断天气情况if (temperature > 30) {printf("天气非常热,适合游泳。\n");} else if (temperature > 20) {printf("天气温暖,适合户外活动。\n");} else if (temperature > 10) {printf("天气稍凉,适合散步。\n");} else {printf("天气寒冷,建议在室内活动。\n");}return 0;
}

输出

天气温暖,适合户外活动。
1.3 switch语句

switch语句用于基于一个变量的不同值来执行不同的代码块。它通常用于替代多个if-else if条件判断,使代码更加简洁和易读。

语法

switch (表达式) {case1:// 当表达式等于值1时执行的代码break;case2:// 当表达式等于值2时执行的代码break;
http://www.lryc.cn/news/610122.html

相关文章:

  • 每日一leetcode:移动零
  • 【Java】HashMap线程安全吗?
  • allegro建库--1
  • 【云馨AI-大模型】2025年8月第一周AI浪潮席卷全球:创新与政策双轮驱动
  • MLS平滑滤波
  • 洛谷 P3373 【模板】线段树 2- 普及+/提高
  • 《Python 实用项目与工具制作指南》· 3.1 实战·开发题目数据生成器
  • 思科 UCS Fabric Interconnect 和 UCS Manager 简介
  • 比起登天,孙宇晨更需要安稳着陆
  • C语言编程中常用的预定义宏
  • 浅谈 Python 中的 next() 函数 —— 迭代器的驱动引擎
  • 【深度学习新浪潮】近三年城市级数字孪生的研究进展一览
  • push/pop字节对齐使用场景
  • Next Terminal 实战:内网无密码安全登录
  • cocos2 场景跳转传参
  • 佰力博检测与您探讨介温谱和介电谱的区别?
  • 【实战】Dify从0到100进阶--中药科普助手(1)
  • 7.1、《软件工程》-软件生命周期-CMM-开发模型
  • 【2025/08/04】GitHub 今日热门项目
  • 【2025-08-04 Java学习小记】
  • Linux磁盘分区与挂载完全指南
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • 使用1panel将http升级至https的过程
  • javacc学习笔记 03、编译原理实践 - JavaCC解析表达式并生成抽象语法树
  • 深入解析线程同步中WaitForSingleObject的超时问题
  • 【Java基础知识 17】面向对象编程
  • Adobe Experience Manager (AEM) Assets|企业级数字资产管理平台(DAM)
  • javacc学习笔记 01、JavaCC本地安装与测试
  • TorchDynamo源码解析:从字节码拦截到性能优化的设计与实践
  • 厄米系统(Hermitian System)