C语言从头学12——流程控制(一)
C语言程序的执行顺序是从前到后依次序执行的。如果想要控制程序执行的流程,就必须使用
流程控制的语法结构,分为条件执行和循环执行。
1、if语句
if 语句在前面的举例中曾经出现过,这里做详细介绍。该语句用于条件判断,满足条件时,就执行指定的语句。
格式一、 if (条件表达式) 要执行语句 //含义:如果"条件表达式 "为"真" 则执行 "要执行的语句",否则就跳过去。例如:
if(x==5) printf("x的值是5"); //运行结果:只有当x等于5时,才显示"x的值是5"
如果 "要执行的语句" 有两条及以上,就需要把 "要执行的语句" 用大括号括起来,一般另起一行更清楚。格式如下:
if ( 条件表达式 )
{
语句1;
......
语句n;//要执行语句后边必须有分号";"
} //大括号后边不用加分号(";")
实际上,即使只有一条要执行的语句加上大括号后在逻辑上也显得更清楚。
格式二、if (条件表达式)
{
语句1;
.....
语句n;
} else //这里有一个else,在其后执行"条件表达式"为"假"的语句
{
语句1;
.....
语句n;
}
另外,else 后边还可以与另if语句连用,形成嵌套结构,格式如下:
if (条件表达式1)
{语句或语句块1;}
else if (条件表达式2)
{语句或语句块2;}
......
else if(条件表达式n-1)
{语句或语句块n-1;}
else
{语句或语句块n;} //收底语句
顺带说一句,编辑代码时,根据执行的层次进行适当缩进,可以在看代码时逻辑更清楚。
据说多层嵌套的if...else...if结构不是好的结构形式,容易出错,尽量不用。
2、三目运算符 "? :"
三目运算符可以看做是if...else结构的简写。
格式:(条件表达式) ? (表达式1或值1) : (表达式2或值2) // 括号非必须
条件表达式为真返 (表达式1或值1),否则 (返回表达式2或值2)
3、switch语句
switch语句可以说是if...else语句的变种,用于判断有多个结果的情况。看起来比if...else
语句更清楚。格式如下:
switch(有返回值的表达式或变量)
{
case 返回值1: 语句1
break; //为了执行完相应语句后跳出switch结构,在下一case语句前
//加一个break以结束switch
case 返回值n: 语句n
break;
.......
default: 兜底语句; //兜底语句后不用加break,后边没有要执行的语句了
}
switch 这种结构,多用于编写菜单代码。
4、用上面介绍的流程控制语句编写一个小程序,用以加深对流程控制的理解。
#include<stdio.h>
int main(void)
{
//1、if语句的使用int a = 100;if (a > 50) printf("a的值大于50\n"); //条件后只有一个语句时可省去{}if (a == 100) //if..else...结构{printf("a的值等于100\n"); //条件成立执行此语句}else{printf("a的值不等于100\n"); //条件不成立执行此语句}
//2、三目运算符的使用int x = 1;a=500;int y;y = (x == 1) ? a : 50; //条件成立返回500,不成立返回50printf("y的值是%i\n", y);
//3、swich语句的使用int choice = 4;switch (choice){case 0: printf("choice的值是0\n");case 1: printf("choice的值是1\n");case 2: printf("choice的值是2\n");default:printf("choice的值不是1、2、3\n");}getchar();return 0;
}
//运行结果:
/*
a的值大于50
a的值等于100
y的值是500
choice的值不是1、2、3
*/
相关文章:
C语言从头学12——流程控制(一)
C语言程序的执行顺序是从前到后依次序执行的。如果想要控制程序执行的流程,就必须使用 流程控制的语法结构,分为条件执行和循环执行。 1、if语句 if 语句在前面的举例中曾经出现过,这里做详细介绍。该语句用于条件判断,满…...
10大领域应该怎么记?
文章目录 5大过程组10大领域49个过程输出输入工具与技术 参考文档: https://mp.weixin.qq.com/s/BJ-Dpn0zxTP0TCbeoJXb9A 5大过程组 启动、规划、执行、监控、收尾 10大领域 巧记:【挣饭进城市,咨购风菜干】【狗子整范进—成人风采】 整…...
通过Ubuntu虚拟机+Linux移植LVGL并通过linux Frame buffer显示
文章参考:https://gitee.com/socbis/linux-lvgl lvgl on linux Frame buffer 主机环境: Ubuntu 18.04lvgl 8.0.1 获取源码并运行demo 获取源码 需要3样东西来构建demo : lvgl核心控件库: 从此处获取源码 lvgl,选择版本 Release v8.0.1. 显示和触摸接…...
M功能-支付平台(三)
target:离开柬埔寨倒计时-221day 前言 今天周六,但是在柬埔寨还是工作日,想着国内的朋友开始休周末就羡慕呀,记不清在这边过了多少个周六了,多到我已经习惯了。而且今天技术部还停电了,真的是热的受不了呀…...
5G工厂长啥样
5G工厂是一种新型的工业互联网基础设施,利用5G为代表的新一代信息通信技术集成,打造新型工业互联网基础设施。在5G工厂中,自动化和智能化设备广泛使用,高度互联的工厂网络得以实现,远程监控和管理成为可能,…...
使用Python操作Jenkins
大家好,Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,…...
网络协议测试仪设计方案:474-便携式手提万兆网络协议测试仪
便携式手提万兆网络协议测试仪 一、平台简介 便携式手提万兆网络协议测试仪,以FPGA万兆卡和X86主板为基础,构建便携式的手提设备。 FPGA万兆卡是以Kintex-7XC7K325T PCIeX4的双路万兆光纤网络卡,支持万兆网络数据的收发和网络协议…...
使用numpy手写一个神经网络
本文主要包含以下内容: 推导神经网络的误差反向传播过程使用numpy编写简单的神经网络,并使用iris数据集和california_housing数据集分别进行分类和回归任务,最终将训练过程可视化。 1. BP算法的推导过程 1.1 导入 前向传播和反向传播的总体…...
使用Spring AOP实现接口参数变更前后对比和日志记录
推荐一个程序员的常用工具网站,效率加倍,嘎嘎好用:程序员常用工具云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价记录接口调用前后的参数变化是一个常见的需求,这不仅有助于调试和…...
免费无限换脸,火了,图片/视频/直播都行!
最强换脸AI工具Facefusion软件在近期更新到了2.6.0版本,带来了一系列的更新和改进,今天为大家分享一下最新的整合包。 Facefusion2.6.0版本介绍 FaceFusion不仅仅是一款换脸软件,它更是一个多功能的数字人和实时直播助手,真正开启…...
无线领夹麦克风哪个品牌好?本期文章揭秘无线麦克风哪个品牌好用
在当下这个全民皆为媒体的时代大潮中,视频分享已然成为了引领风尚的指向标。在自媒体领域竞争愈发激烈的态势下,若要在这片广阔海洋中扬帆远航,优秀的作品毫无疑问是吸引观众的关键所在。而想要塑造出这样的卓越之作,除了需要创…...
操作系统实验--终极逃课方法
找到图片里的这个路径下的文件 ,结合当前题目名称,把文件内容全部删除,改为print print的内容为下图左下角的预期输出的内容...
C语言实现正弦信号扫频
C语言实现正弦信号扫频 包含必要的头文件:首先,你需要包含 <stdio.h> 和 <math.h> 头文件,分别用于输入输出和数学函数的使用。 定义扫频参数:定义正弦扫频的参数,例如起始频率、结束频率、扫频时间等。 生成正弦波信号:使用正弦函数生成扫频信号,可以根…...
实用篇| huggingface网络不通
之前文章《Transformer原理》中介绍过,Transformers 是由 Hugging Face 开发的一个包,支持加载目前绝大部分的预训练模型。随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建应用。 Hugging Face是一家美国公司…...
NLP与训练模型-GPT-3:探索人工智能语言生成的新纪元
在人工智能领域,自然语言处理(NLP)一直是备受关注的研究方向之一。随着深度学习技术的发展,尤其是Transformer模型的出现,NLP领域取得了巨大的进步。其中,由OpenAI推出的GPT-3模型更是引起了广泛的关注和热…...
iOS内购欺诈漏洞
iOS内购欺诈漏洞 1.iOS内购欺诈漏洞概述2.伪造的凭证3.漏洞修复方案 1.iOS内购欺诈漏洞概述 黑产别的App上低价充值(比如1元)换取苹果真实凭证,再在目标App上下单高价(648元)商品,传入该凭证,如…...
【网络服务】正向代理和反向代理到底是什么意思
🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 前言 在学习和…...
【算法】记忆化搜索
快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、不同路径二、最长递增子序列三、猜数字大小 ||四、矩阵中的最长递增路径总结 引言 记忆化搜索&…...
博客系统多模块开发
创建工程 创建父工程 删除src目录,在pom.xml添加依赖: <!--统一版本 字符编码--><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.b…...
pdf阅读器哪个好用?五款PDF阅读器大比拼
pdf阅读器哪个好用?在数字化时代,PDF文档因其跨平台、跨设备的便捷性,已成为工作、学习和生活中不可或缺的一部分。而一款优秀的PDF阅读器,则能极大地提升我们处理PDF文档的效率与体验。今天,就让我们一起探索五款备受…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
