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.pswp.cn/news/917546.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917546.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917546.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac电脑基本功能快捷键

1. 个性化桌面 将喜爱照片添加为桌面墙纸。前往“系统设置”&#xff0c;然后点按边栏中的“墙纸”。点按“添加照片”&#xff0c;然后从文件或“照片”App选取一张照片。 2. 截屏 按下键盘上的Shift &#xfffc; Command ⌘ 5&#xff0c;然后选取捕捉整个屏幕、App窗口或…

微算法科技(NASDAQ: MLGO)开发量子边缘检测算法,为实时图像处理与边缘智能设备提供了新的解决方案

图像边缘检测是计算机视觉的核心任务&#xff0c;传统算法&#xff08;如 Sobel、Canny&#xff09;依赖梯度计算与阈值分割&#xff0c;在处理高分辨率、复杂纹理图像时面临计算效率瓶颈。随着量子计算技术的发展&#xff0c;利用量子态叠加与并行处理特性&#xff0c;微算法科…

断点续传Demo实现

基于我们的DownloadManager.swift代码&#xff0c;让我详细解释断点续传需要实现的核心功能&#xff1a; 断点续传的核心实现要素 1. 后台会话配置 private func setupBackgroundSession() {let config URLSessionConfiguration.background(withIdentifier: "com.test.do…

《Leetcode》-面试题-hot100-子串

题目列表 560. 和为K的子数组 中等难度 leetcode链接 239 滑动窗口最大值 困难难度 leetcode链接 76 最小覆盖子串 困难难度 leetcode链接 题目 &#xff08;1&#xff09;和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 …

点击弹框以外的区域关闭弹框

在 Vue 3 中&#xff0c;如果你想判断点击的目标是否在弹框内&#xff0c;可以通过以下步骤实现。这里我们将使用 ref 来引用弹框组件&#xff0c;并在点击事件中进行判断。 示例代码 1. 创建弹框子组件 首先&#xff0c;创建一个名为 Modal.vue 的子组件。 <!-- Modal.vue …

00.Vue基础入门【小白级别手把手!】

目录 一、Vue介绍 二、创建Vue项目 nodeJs nvm版本管理 创建Vue项目 VS Code编辑器 三、.Vue文件结构说明 数据渲染 四、Vue项目目录说明 main.ts文件说明 五、Vue官网文档学习 一、Vue介绍 基础介绍 Vue是一个前端Web框架&#xff0c;属于单页应用&#xff08;SPA&am…

将Varjo XR技术融入战斗机训练模拟器,有效提升模拟训练沉浸感与效率

本周在Varjo总部&#xff0c;收到了一份令人兴奋的礼物&#xff0c;一架由Dogfight Boss与varjo XR-4集成的训练模拟器。这是一个专业级模拟器&#xff0c;专为高保真训练和任务排练而设计&#xff0c;非常注重细节&#xff0c;提高了沉浸水平。为此Dogfight Boss的首席执行官L…

C# async await 实现机制详解

一、async/await 异步编程实现机制 1.1 核心概念 async/await 是 C# 5.0 引入的语法糖&#xff0c;它基于**状态机&#xff08;State Machine&#xff09;**模式实现&#xff0c;将异步方法转换为编译器生成的状态机类。 1.2 编译器转换过程 当编译器遇到 async 方法时&#xf…

Servlet 学习笔记

本文为记录Servlet学习时的一些笔记和代码 课程参考黑马程序员 对于Java Web 学习的一个复习一 概述server applet 运行在服务器端的小程序 本质就是一个接口 定义java类被浏览器访问到&#xff08;Tomcat识别&#xff09;的规则我们会自定义这样一个类来实现复写方法实现接口二…

【maven】仓库配置

目录 一、本地仓库 二、私有仓库 三、阿里云仓库 一、本地仓库 针对无外网、无maven私服&#xff0c;只有本地仓库&#xff0c;进行maven项目开发。在maven的settings.xml中设置三项&#xff1a; 1、本地仓库地址 默认在当前系统用户下创建目录&#xff1a;.m2/repository…

信息系统架构设计的系统性解析

一、信息系统架构设计​​概念定义​​&#xff1a;信息系统架构&#xff08;ISA&#xff09;是对系统组件、交互关系及环境约束的结构化抽象&#xff0c;确保业务目标与技术实现对齐。核心要素包括业务逻辑层、数据层、应用层和基础设施层。​​设计方法​​&#xff1a;​​T…

编译旧版本的electron内核

我们的软件产品使用的electron框架&#xff0c;electron框架是不断更新的&#xff0c;但是我们的软件太过庞大复杂&#xff0c;不敢轻易升级electron框架。Electron旧版本存在一些BUG和不合理的地方&#xff0c;需要去修复BUG或者不合理的地方。修复完BUG后&#xff0c;要对ele…

Elastic 9.1/8.19:默认启用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry

作者&#xff1a;来自 Elastic Mark Doncov 今天&#xff0c;我们很高兴宣布 Elastic 9.1 和 8.19 正式发布&#xff01; 是的&#xff0c;又有好消息 —— 我们将 8.x 系列最终延长到 8.19&#xff0c;这样那些还在等待升级到 9.x 的用户也能享受到许多新功能。 Elastic 9.1…

Redis面试精讲 Day 8:Stream消息队列设计与实现

【Redis面试精讲 Day 8】Stream消息队列设计与实现 文章标签 Redis,消息队列,Stream,面试技巧,分布式系统,后端开发 文章简述 本文是"Redis面试精讲"系列第8天&#xff0c;聚焦Redis 5.0引入的Stream消息队列。文章深入解析Stream的核心概念与实现原理&#xff0…

【01】大恒相机SDK C++开发 —— 初始化相机,采集第一帧图像、回调采集、关闭相机

文章目录1 初始化相机&#xff0c;采集第一帧图像2 回调方式采集图像3 视频教程1 初始化相机&#xff0c;采集第一帧图像 #include <iostream> #include <GalaxyIncludes.h> using namespace std;int main() {//首先&#xff0c;对相机资源进行初始化IGXFactory::…

Windows下定位Mingw编译的Qt程序崩溃堆栈

一、dump和pdb是什么 在Windows系统下&#xff0c;当我们写的程序跑在客户的机器上&#xff0c;因为一个bug&#xff0c;导致程序崩溃&#xff0c;我们该如何定位并修复这个bug呢&#xff1f; 有人会说记录日志&#xff0c;即便有日志&#xff0c;也是不好定位的&#xff0c;因…

.net依赖注入框架 Autofac和MEF的对比

Autofac 默认需要显式注册每个类型&#xff0c;这是它与MEF在模块化设计上的主要区别。以下是具体对比说明&#xff1a;1. Autofac 的基本注册方式 Autofac 必须通过代码明确注册每个需要注入的类型&#xff08;除非使用特殊扫描机制&#xff09;&#xff1a; var builder new…

Python 使用 asyncio 包处理并 发(使用asyncio包编写服务器)

使用asyncio包编写服务器 演示 TCP 服务器时通常使用回显服务器。我们要构建更好玩一点的示 例服务器&#xff0c;用于查找 Unicode 字符&#xff0c;分别使用简单的 TCP 协议和 HTTP 协议实现。这两个服务器的作用是&#xff0c;让客户端使用 4.8 节讨论过的 unicodedata 模块…

Node.js (Express) + MySQL + Redis构建项目流程

以下是使用 Node.js (Express) MySQL Redis 构建完整项目的详细流程&#xff0c;涵盖环境搭建、架构设计、核心代码实现和部署优化&#xff1a;一、项目初始化 1. 创建项目目录 mkdir my-project cd my-project npm init -y2. 安装基础依赖 npm install express mysql2 redis…

Python3 中使用zipfile进行文件(夹)的压缩、解压缩

一、文件压缩与解压缩模块 zipfile简介 zipfile 是 Python 标准库中用于处理 ZIP 压缩文件的模块&#xff0c;提供了创建、读取、写入、解压 ZIP 文件的完整功能。它支持多种压缩算法&#xff0c;无需安装额外依赖&#xff0c;是处理 ZIP 格式的首选工具。 核心功能与常用类 zi…