C语言三大程序结构 单分支语句
核心概念:程序就像流水线,通过顺序、选择、循环三种结构完成复杂任务
🌟 一、三大程序结构图解
| 结构类型 | 形象比喻 | 代码示例 |
|---|---|---|
| 顺序 | 直行马路 → 不拐弯 | printf("A"); printf("B"); |
| 选择 | 岔路口 → 二选一 | if...else |
| 循环 | 环形跑道 → 重复绕圈 | for/while |
🔍 二、选择结构:if语句完全指南
1. 基础语法(单分支)
if(条件表达式) {语句1; // 条件成立时执行
} else {语句2;// 条件不成立时执行
}
2. 真假判断核心规则
-
真:任何非0值(负数、正数)
-
假:0(唯一假值)
3. 实战案例:年龄验证
int age = 17;
if(age >= 18) {printf("允许进入网吧\n"); // 条件成立执行
}
else{printf("未成年人禁止入内\n"); // 条件不成立执行}
// 输出:未成年人禁止入内
⚠️ 三、多条件判断避坑指南
🚫 错误写法
if(10 < age < 20) ❌ // 错误!编译器会误解为 (10 < age) < 20
✅ 正确写法
// 判断年龄在(10,20)区间
if(age > 10 && age < 20) { ✅ printf("青少年模式\n");
}// 判断年龄≤10 或 ≥60
if(age <= 10 || age >= 60) { ✅printf("特殊关爱人群\n");
}
🔑 逻辑运算符详解
| 运算符 | 名称 | 规则 | 示例 | ||||
|---|---|---|---|---|---|---|---|
&& | 逻辑与 | 两边都为真 → 结果真 | (5>3) && (2<4) → 1 | ||||
| || | 逻辑或 | 任意一边为真 → 结果真 | (5<3)(2<4) → 1 | ||||
! | 逻辑非 | 取反操作 | !(5>3) → 0 | ||||
💼 四、代码块规范(职业习惯培养)
🚨 不良习惯(易出错)
if(age > 18)printf("成年\n"); // 只有这一句属于ifprintf("可办信用卡\n"); // 此句永远执行 ❌
💡 规范写法(推荐)
if(age > 18) { ✅printf("成年\n");printf("可办信用卡\n"); // 两句都在if控制内
} else {printf("未成年\n");
}
🌈 五、多分支结构扩展
int score = 85;
if(score >= 90) {printf("A级\n");
}
else if(score >= 80) { // 前条件不满足时检查printf("B级\n"); // 本例输出:B级
}
else if(score >= 60) {printf("C级\n");
}
else {printf("不及格\n");
}
📝 六、总结表格
| 要点 | 正确写法示例 | 常见错误 |
|---|---|---|
| 单条件判断 | if(a > 10) | if(a > 10); ❌(多分号) |
| 多条件区间判断 | a>10 && a<20 | 10<a<20 ❌ |
| 代码块规范 | 使用{}包裹多语句 | 省略{}导致作用域错误 |
| 多分支结构 | if...else if...else | 漏写else导致逻辑漏洞 |
💡 学习技巧:
-
遇到条件判断先画流程图
-
测试边界值(如age=18, score=60)
-
使用调试工具逐行观察执行过程
掌握这些核心要点,你就能轻松玩转条件判断啦! 🚀
相关文章:
C语言三大程序结构 单分支语句
核心概念:程序就像流水线,通过顺序、选择、循环三种结构完成复杂任务 🌟 一、三大程序结构图解 结构类型形象比喻代码示例顺序直行马路 → 不拐弯printf("A"); printf("B");选择岔路口 → 二选一if...else循环环形跑道 …...
【Linux系统】Linux权限讲解!!!超详细!!!
目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注: Linux权限 定义 权限操作 1、修改文…...
Winform零基础从入门到精通(5)——WinForm菜单与工具栏开发详解
一、核心控件与功能 MenuStrip(顶部菜单栏) • 功能:创建应用程序主菜单,支持多级子菜单和快捷键。 • 关键操作: ◦ 添加菜单项:直接在菜单栏输入文字(如“文件(F)”),…...
2.创建Collection、添加索引、加载内存、预览和搜索数据
milvus官方文档 milvus2.3.1的官方文档地址: https://milvus.io/docs/v2.3.x 使用attu创建collection collection必须要有一个主键字段、向量字段 确保字段类型与索引类型兼容 字符串类型(VARCHAR)通常需要使用 Trie 索引,而不是 AutoInd…...
AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅
探秘海螺AI:多模态架构下的认知智能新引擎 在人工智能持续进阶的进程中,海螺AI作为一款前沿的多功能AI工具,正凭借其独特的多模态架构崭露头角。它由上海稀宇科技有限公司(MiniMax)精心打造,依托自研的万亿…...
一文解读DeepSeek在法律商业仲裁细分行业的应用
引言 当AI闯入法律界:DeepSeek如何把商业仲裁变成“纠纷快车道” AI技术正在像水电煤一样渗透生活,随着DeepSeek的爆火出圈,全国各行各业都在如火如荼地接入DeepSeek,以期望利用DeepSeek的“超能力”来重塑各自行业的效能和格局&a…...
快速入手-基于Django的主子表间操作mysql(五)
1、如果该表中存在外键,结合实际业务情况,那可以这么写: 2、针对特殊的字典类型,可以这么定义 3、获取元组中的字典值和子表中的value值方法 4、对应的前端页面写法...
HTTPS协议—加密算法和中间攻击人的博弈
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
【大模型理论篇】CogVLM:多模态预训练语言模型
1. 模型背景 前两天我们在《Skywork R1V: Pioneering Multimodal Reasoning with Chain-of-Thought》中介绍了将ViT与推理模型结合构造多模态推理模型的案例,其中提到了VLM的应用。追溯起来就是两篇前期工作:Vision LLM以及CogVLM。 今天准备回顾一下Cog…...
AI知识补全(一):tokens是什么?
名人说:苔花如米小,也学牡丹开。——袁枚《苔》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是Tokens?二、为什么Tokens如此重要?1.模型的输入输出限制2.…...
Wpf Avalonia-实现中英文切换工程
文章目录 language工程项目代码创建获取资源文件string工程图片主项目引用LanguageView中使用ViewModel中使用language工程项目 <Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><ImplicitUsings>enable</ImplicitUsings><TargetFrame…...
pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)
我在使用pyqt库的时候报错: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in \ "/mnt/private_disk/anaconda3/envs/aot-manip/lib/python3.8/site-packages/PyQt5/Qt5/plugins/platforms" even though it was found. This ap…...
【MySQL数据库】触发器与事件
MySQL触发器 trigger,在表的插入insert、更新update、删除delete操作发生时自动执行MySQL语句。 学过Qt的都知道信号槽,一旦发出某个信号,那么就会触发关联的信号槽函数。触发器就类似于这个操作。 创建触发器时需要给出一些信息ÿ…...
【LC插件开发】基于Java实现FSRS(自由间隔重复调度算法)
😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解【LC插件开发】基于Java实现FSRS(自由间隔重复调度算法),期待与你一同探索、学习、进步,一起卷起来叭! 目录…...
java后端接收数组,数组长度超256个就会报错
1.原因 DataBinder 中默认限制了list最大只能增长到256。 2.解决方案 1.在BaseController添加InitBinder方法,其余继承BaseController InitBinder //类初始化是调用的方法注解public void initBinder(WebDataBinder binder) {//给这个controller配置接收list的长…...
第45章:配置更新与应用热重载策略
第45章:配置更新与应用热重载策略 作者:DogDog_Shuai 阅读时间:约25分钟 难度:中级 目录 1. 引言2. 配置更新挑战3. Kubernetes原生配置更新机制4. 应用热重载技术5. 配置更新最佳实践...
数据库MVCC详解
MVCC 1.基本介绍 数据库:MySQL。【很多主流数据库都使用了MVCC,比如MySQL的InnoDB引擎、PostgreSQL、Oracle】 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。是数据库管理系统中的一种并发控制方法。 MVCC的…...
MySQL数据库基础篇
目录 SQL的分类 数据定义语言(DDL)---Data Definition Language 数据操作语言(DML) ---Data Manipulation Language 数据查询语言(DQL) ---Data Query Language 数据控制语言(DCL) ---Data Control Language 事务控制语言(TCL) --- Transaction Cont…...
Rust函数、条件语句、循环
文章目录 函数**语句与表达式**条件语句循环 函数 Rust的函数基本形式是这样的 fn a_func(a: i32) -> i32 {}函数名是蛇形风格,rust不在意函数的声明顺序,只需要有声明即可 函数参数必须声明参数名称和类型 语句与表达式 这是rust非常重要的基础…...
AI比人脑更强,因为被植入思维模型【17】万物联系思维模型
万物联系,万物,并不孤立。 定义 万物联系思维模型是一种强调世界上所有事物都相互关联、相互影响的思维方式。它认为任何事物都不是孤立存在的,而是与周围的环境、其他事物以及整个宇宙构成一个有机的整体。这种联系不仅包括直接的因果关系,还涵盖了间接的、潜在的、动态的…...
Android Compose 约束布局(ConstraintLayout、Modifier.constrainAs)源码深度剖析(十二)
Android Compose 约束布局(ConstraintLayout、Modifier.constrainAs)源码深度剖析 一、引言 在 Android 开发中,布局是构建用户界面的基础。随着 Android 开发技术的不断发展,Jetpack Compose 作为一种全新的声明式 UI 框架应运…...
【MySQL篇】复合查询
目录 前言: 1,多表查询 2,自连接 3,子查询 3.1,单行子查询 3.2,多行子查询 3.3,多列子查询 3.3,在from子句中使用子查询 4,合并查询 4.1,union …...
点亮STM32最小系统板LED灯
对于如何点亮板载LED灯只需要掌握如何初始化GPIO引脚,并改变GPIO引脚的电平即可实现点亮或者熄灭LED。 Led_INFO led_info {0}; led_info 是一个结构体变量,类型为 Led_INFO,用于存储LED的状态信息。这里初始化为 {0},表示所有成…...
unsloth微调QwQ32B(4bit)
unsloth微调QwQ32B(4bit) GPU: 3090 24G unsloth安装部署 pip 安装 pip install unsloth --index https://pypi.mirrors.usrc.edu.cn/simplesource /etc/network_turbopip install --force-reinstall --no-cache-dir --no-deps githttps://github.com/unslothai/unsloth.git…...
基于腾讯云大模型知识引擎×DeepSeek的高等职业学校单独招生二级学院考前咨询系统
1、主要思路 通过大模型知识引擎DeepSeek搭建高等职业学校单独招生二级学院考前咨询专有问答,使得专业老师能够更好的服务考试学生,有利于二级学院能够更好的进行考试宣传,招来优秀学子! 2、创作过程 2.1、本地部署大模型的缺陷…...
【Linux】线程库
一、线程库管理 tid其实是一个地址 void* start(void* args) {const char* name (const char *)args;while(true){printf("我是新线程 %s ,我的地址:0x%lx\n",name,pthread_self());sleep(1);}return nullptr; }int main() {pthread_t tid…...
数组作为哈希表的妙用:寻找缺失的第一个正数
数组作为哈希表的妙用:寻找缺失的第一个正数 大家好,我是Echo_Wish,今天我们来探讨一个经典的算法问题——“缺失的第一个正数”。听起来可能有点简单,但它实际上是一个非常有意思且富有挑战性的题目,在面试中常常会碰…...
物化视图详解:数据库性能优化的利器
物化视图(Materialized View)作为数据库性能优化的核心手段,通过预计算和存储查询结果,显著提升了复杂查询的效率。本文将深入剖析物化视图的工作原理、应用场景及最佳实践,帮助企业在合适的场景中充分发挥其性能优势。…...
【C++】类和对象(匿名对象)
匿名对象 用 类型(实参) 定义出来的对象叫做匿名对象,相比之前我们定义的 类型 对象名(实参) 定义出来叫有名对象匿名对象生命周期只在当前一行,一般临时定义一个对象当前用一下即可,就可以定义匿名对象。 class A { public:A(int a 0):_a…...
一文读懂 GPT 与 BERT:预训练逻辑及差异剖析
在自然语言处理(NLP)领域,预训练语言模型GPT(Generative Pretrained Transformer)和 BERT(Bidirectional Encoder Representations from Transformers)作为杰出代表,备受关注。本文将…...
