C语言中的流程控制语句
一.流程控制语句的分类:
1.顺序结构
概念:从上往下依次执行,也是程序默认的执行顺序
2.分支结构
概念:程序在执行的过程中出现了岔路(我们只能选择一条支线进行执行)
(1).if语句:
①:使用场景:在if语句内的代码只有在满足if内的条件之后才能执行
②:需要的能力:利用if语句对数据进行判断从而执行不同的代码
③:格式:
if (关系表达式) {语句体;
}
④:举例:
#include<stdio.h>
int main() {int a = 10;int b = 20;if (a > b) {printf("a>b");} //很显然这段程序最后的结果是什么都不会输出,因为10不大于20
}
注意:
①:在c语言中,如果判断的结果是一个数字,非0表示条件成立,0则表示条件不成立
②:如果大括号里面的语句体只有一行,那么大括号可以省略不写,如下:
#include<stdio.h>
int main() {int a = 10;int b = 20;if (a > b)printf("a>b");//很显然这段程序最后的结果是什么都不会输出,因为10不大于20
}
(2).if,else结构
在这种结构中,如果满足了if中的条件,那么就执行if中的语句,如果不满足if中的条件,那么就执行else中的语句
①:举例:
#include<stdio.h>
int main() {int a = 10;int b = 20;if (a > b)printf("a>b");else printf("b>a");//在没有写else语句时什么都不会输出,在写了else语句之后很明显会执行else中的语句,输出b>a
}
(3).if,else if,else格式
①:应用场景:需要用到多条件判断时
②:举例:
#include<stdio.h>
int main() {int score = 100;//其实聪明的你已经发现了,这段代码是有问题的,只要score小于60就为D,负数当然也包括在内,只要score不满足其他的三个条件就为A,但是没有限制数据的范围(只要大于等于90),在实际的开发中我们要尽量避免出现这样的情况 if (score < 60)printf("D");else if (score >= 60 && score < 80)printf("C");else if (score >= 80 && score < 90)printf("B");elseprintf("A");
}
在这段代码中我们需要注意的是:
①:从上往下依次进行判断
②:只要有一个判断成立那么就执行对应的语句体
③:如果所有的判断都不成立,那么就执行else的语句体
(4).switch语句
①:作用:把所有的选择一一列举出来,根据不同的条件任选其一
②:格式:
switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n;break;
}
③:执行流程:
首先计算表达式的值
依次和case后面的值进行比较,如果有对应的值,那么就会执行相应的语句,在执行的过程中,遇到break就会结束
如果所有的case后面的值和表达式的值都不匹配,那么就会执行default里面的语句体,然后结束整个switch语句
④:举例:
#include<stdio.h>
int main() {int week = 7;switch(week) {case 1:printf("1");break;case 2:printf("2");break;case 3:printf("3");break;case 4:printf("4");break;case 5:printf("5");break;case 6:printf("6");break;case 7:printf("7");break;default:printf("default");break;}
}
⑤:注意事项:
表达式的计算结果只能是字符或整数
case的值只能是字符或整数的字面量,不能是变量
case的值不允许重复
break表示中断,结束的意思,一旦执行了break语句就会直接结束switch语句
default是在所有情况都不匹配的时候才执行的内容
⑥:对比switch和if的使用场景:
switch一般适用于有限个case进行匹配的时候
if一般是对一个范围进行判断的时候使用
⑦:break的作用:
如果在执行的过程中遇到了break那么就会直接结束整个switch语句
但是如果没有遇到break,那么就会继续执行下面的case中的代码
直到遇到break,或者把整个switch语句中的代码都执行了才会结束
因此break都是和case连用的,如果不连用就会出现一直执行到完成整个switch语句才会停止的错误
3.循环结构
概念:重复地执行某件事
但是我们也不能设置一个无限循环的代码,那样除了浪费电脑的性能以外没有任何的意义,因此我们需要设置三个部分,分别为:开始条件(初始化语句),结束条件(条件判断语句),控制开关(条件控制语句)
(1).for循环:
①:结构:
for (初始化语句; 条件判断语句; 条件控制语句) {循环体;
}
②:举例:
#include<stdio.h>
int main() {//使用for循环语句打印了100遍我爱学习 for (int i = 1; i <= 100; i++) {printf("我爱学习\n");}
}
③:for循环的执行流程:
执行初始化语句
执行条件判断语句,如果条件成立,那么执行循环体语句,不成立则结束循环
执行条件控制语句
回到第二步继续执行条件判断语句
(2).while循环
①:结构:
while(条件判断语句) {循环体语句;条件控制语句;
}
②:while循环的执行流程:
首先进行条件判断,若满足条件,则依次执行循环体语句和条件控制语句一直到不满足条件为止
③:举例:
#include<stdio.h>
int main() {//使用while循环语句打印了100遍我爱学习 int i = 1;while(i <= 100) {printf("我爱学习\n");i++;}
}
(3).for循环,while循环对比:
相同点:
①:运行规则都是一样的
不同点:
①:for循环中控制循环的变量因为归属于for循环的语法结构中,因此在for循环结束后就不能再次被访问到
②:在while循环中控制循环的变量对于while循环来说不归属于其语法结构中,在while循环结束后,该变量还是可以继续使用
③:for循环中知道循环次数或者循环的范围
④:while循环中不知道循环的次数和范围,只知道循环的结束条件
(4).do...while循环
①:格式:
初始化语句;
do {循环体语句;条件控制语句;
} while(条件判断语句);
②:do...while循环的执行流程:
先执行后判断,循环体会至少执行一次,之后的流程就和while循环相同了
4.无限循环
正如它的名字,在这样的循环中,循环是永远停不下来的
三种循环都可以达成这样的效果:
for ( ; ; ) {循环体;
}
while(1) {循环体;
}
do {循环体;
} while (1);
那么这样的循环有没有实际的意义呢?
实际上,这样的循环是可以配合判断完成我们的需求的
举例:
#include<stdio.h>
int main() {int ans = 0;int plus = 16;int add = 8;while (1) {//如果ans+add的值和plus相等,那么就跳出这个无限循环 if (ans + add == plus)break;ans++;}printf("%d", ans);
}
5.跳转控制语句
(1).作用:在循环的过程中跳到其他语句上执行
(2).break语句:
break语句不能单独书写,只能写在switch或者循环中,表示结束,跳出的意思
(3).continue语句:
表示结束本次循环,继续下次循环
举例:
#include<stdio.h>
int main() {for (int i = 0; i <= 5; i++) {//使用continue语句跳过了i等于3的情况 if (i == 3) continue;printf("%d", i);}
}
6.循环嵌套
循环嵌套正如字面上的意思,我们可以在循环中嵌套循环,做到双循环,三循环,乃至更多的情况,在这里我只用一个九九乘法表的打印作为举例:
#include<stdio.h>
int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d * %d = %d ", j, i, j * i);}//输出换行符 printf("\n");}
}
7.循环嵌套跳出的问题:
(1).break只会跳出当前自己所在的循环,也就是说,如果我们写了一个双重循环,把最上级的循环称为父循环,下一级的循环称为子循环,那么如果我们在子循环中写了一个break语句会怎样?
是的,只是会跳出子循环罢了,对父循环没有影响,我们使用break跳出循环时只需要记住break只是会跳出自己当前所在的循环即可
(2).goto语句:
goto语句一般都是结合标号使用的,可以跳到代码中的任何地方,一般我们只用于跳出循环嵌套
举例:
#include<stdio.h>
int main() {int i = 1;while (1) {printf("今日无事,好好学习\n");i++;if (i == 100) goto position;}
position:printf("休息一下,玩会儿游戏");
}
相关文章:
C语言中的流程控制语句
一.流程控制语句的分类: 1.顺序结构 概念:从上往下依次执行,也是程序默认的执行顺序 2.分支结构 概念:程序在执行的过程中出现了岔路(我们只能选择一条支线进行执行) (1).if语句…...
C语言【数据结构】:理解什么是数据结构和算法(启航)
引言 启航篇,理解什么是数据结构和算法 在 C 语言编程领域,数据结构和算法是两个核心且紧密相关的概念 一、数据结构 定义 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合(比如数组),它是组织和存储数…...
WebLogic XMLDecoder反序列化漏洞(CVE-2017-10271)深度解析与实战复现
0x00 漏洞概述 CVE-2017-10271 是Oracle WebLogic Server WLS Security组件中的远程代码执行漏洞。攻击者通过构造恶意XML请求,利用XMLDecoder反序列化机制绕过安全验证,最终实现服务器权限接管。 影响版本 WebLogic 10.3.6.0WebLogic 12.1.3.0WebLog…...
【动态规划篇】746.使用最小花费爬楼梯
746.使用最小花费爬楼梯 题目链接: 746.使用最小花费爬楼梯 题目叙述: 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 …...
类和对象:
1. const运算符重载: 1. const成员函数: 我们来看我们的下面的代码: 我们来看这个,我们的对象使用const进行修饰,然后我们对象d1调用我们的成员函数,然后我们取d1的地址然后传过去,这时候我们的…...
研究整除的性质——最大公约数(GCD)和最小公倍数(LCM)
最大公约数(GCD)和最小公倍数(Least Common Multiple,LCM)研究整除的性质,非常古老,在2000多年前就得到了很好的研究。由于简单易懂,有较广泛的应用,它们是竞赛中频繁出现…...
jenkins 配置邮件问题整理
版本:Jenkins 2.492.1 插件: A.jenkins自带的, B.安装功能强大的插件 配置流程: 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“,是配置之后发件人的email。 2.配置系统自带的邮件A…...
FastAPI复杂查询终极指南:告别if-else的现代化过滤架构
title: FastAPI复杂查询终极指南:告别if-else的现代化过滤架构 date: 2025/3/14 updated: 2025/3/14 author: cmdragon excerpt: 本文系统讲解FastAPI中复杂查询条件的构建方法,涵盖参数验证、动态过滤、安全防护等18个核心技术点。通过引入策略模式、声明式编程等技术,彻…...
MySQL行列转化
初始化表结构: CREATE TABLE student_scores (student_id int NOT NULL,student_name varchar(50) DEFAULT NULL,math_score int DEFAULT NULL,english_score int DEFAULT NULL,science_score int DEFAULT NULL,PRIMARY KEY (student_id) ) ENGINEInnoDB DEFAULT C…...
施磊老师c++(六)
继承与多态-多重继承 文章目录 继承与多态-多重继承1.虚基类和虚继承本节内容 2.菱形继承---怎么解决?本节内容**面试问题: 怎么理解多重继承的?**---重点 3.c提供的四种类型转换本节内容 1.虚基类和虚继承 本节内容 多重继承? 代码复用, 一个派生类 有多个基类 抽象类—有…...
c++:AVL树
1.概念 由于二叉搜索树不能确保为近似完全二叉树的结构,节点相同的情况下,高度可能会很高,高度有可能会很低,所以搜索次数不能稳定维持在logn级别。我们在二叉搜索树的基础上进行平衡调整就可以控制搜索次数稳定在logn级别。 而AV…...
HTML编辑MP4保存名称
上图是HTML的界面,需要点击EDIT_MP4的选项,然后就出现文本框输入MP4名称。输入对应的MP4文件名称后,则点击Add_MP4按钮就可以把MP4的名称修改到json文件里面,json文件是network_detail.json文件。 HTML和CGI程序的交互 上图是htm…...
以太坊AI代理与PoS升级点燃3月市场热情,2025年能否再创新高?
币热网深度报道:以太坊AI代理与PoS升级引爆3月热潮,2025年能否再攀历史新高? 原文来源:币热网 - 区块链信息资讯平台 以太坊升级,市场热情高涨 近期,以太坊市场犹如被一股神秘力量点燃,掀起了…...
IDEA2024又一坑:连接Docker服务连不上,提示:Cannot run program “docker“: CreateProcess error=2
为新电脑安装了IDEA2024版,因为局域网中安装有Docker,所以这台电脑上没有安装,当运行时发现死活连不上Docker报:Cannot run program “docker“: CreateProcess error2 分析: Docker服务有问题 其它电脑都能连,排除 网…...
css基本功
为什么 ::first-letter 是伪元素? ::first-letter 的作用是选择并样式化元素的第一个字母,它创建了一个虚拟的元素来包裹这个字母,因此属于伪元素。 grid布局 案例一 <!DOCTYPE html> <html lang"zh-CN"><head&…...
ALSA vs OSS:Linux 音频架构的演变与核心区别
在 Linux 音频系统的发展过程中,OSS(Open Sound System) 和 ALSA(Advanced Linux Sound Architecture) 曾分别在不同阶段承担着音频管理的角色。OSS 是 Linux 早期的音频架构,而 ALSA 作为其继任者…...
双指针算法介绍+算法练习(2025)
一、介绍双指针算法 双指针(或称为双索引)算法是一种高效的算法技巧,常用于处理数组或链表等线性数据结构。它通过使用两个指针来遍历数据,从而减少时间复杂度,避免使用嵌套循环。双指针算法在解决诸如查找、排序、去重…...
第八节:红黑树(初阶)
【本节要点】 红黑树概念红黑树性质红黑树结点定义红黑树结构红黑树插入操作的分析 一、红黑树的概念与性质 1.1 红黑树的概念 红黑树 ,是一种 二叉搜索树 ,但 在每个结点上增加一个存储位表示结点的颜色,可以是 Red和 Black 。 通过对 任何…...
【C++标准库类型】深入理解C++中的using声明:从基础到实践
目录 一、using声明基础 1.1 基本语法形式 1.2 典型应用场景 1.3 作用域规则 二、关键注意事项 2.1 命名冲突处理 2.2 头文件使用规范 2.3 与typedef的对比 三、面向对象中的应用 3.1. 解除派生类名称隐藏(核心应用) 3.2. 构造函数继承&#…...
蓝桥杯2024年第十五届省赛真题-回文数组
题目描述 小蓝在无聊时随机生成了一个长度为 n 的整数数组,数组中的第 i 个数为ai,他觉得随机生成的数组不太美观,想把它变成回文数组,也是就对于任意i ∈ [1, n] 满足 ai an−i1 。小蓝一次操作可以指定相邻的两个数,…...
多数元素——面试经典150题(力扣)
题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出:3 …...
QT中委托QStyledItemDelegate的使用
目录 一、子类化委托 二、委托方法实现 1)createEditor 2)setEditorData 3)setModelData 4)updateEditorGeometry 三、委托使用 四、总结 Qt的数据容器控件采用模型/视图(model/view)架构设计。模型用于存放控件的数据,视图则用于显示编辑数据,而委托则是…...
android 调用wps打开文档并感知保存事件
需求场景 在项目开发中会碰到需要调用WPS打开Word,Excel,Ppt等Office系列文档的情况,网上目前少有正式介绍如何调用相关API打开文档,并实现文档编辑后回传给三方应用,本人在逛WPS社区时发现 解锁WPS二次开发新世界:Android开发用…...
前端 Webpack 面试题
1、什么是 Webpack?它有什么作用? Webpack 是一个前端资源打包工具,用于将 JavaScript、CSS、图片等项目资源进行模块化管理和打包。它能够将复杂的项目结构转化为浏览器友好的代码,提高前端项目的开发效率和性能。 模块打包:Webpack 将项目中的各个模块及依赖打包成一个…...
05延迟任务精准发布文章(redis实现延迟任务、分布式锁)
上架不代表发布(需要发布app端才会显示文章) 1)文章定时发布 2)延迟任务概述 2.1)什么是延迟任务 定时任务:有固定周期的,有明确的触发时间 延迟队列:没有固定的开始时间,它常常是由一个事件触发的,而在…...
十六、从零搭建一个 Vue 3 后台管理系统:完整实战教程
Vue 3 作为当下最为流行的前端框架之一,凭借其简洁的 API 以及强大的性能,已然成为构建后台管理系统的首选工具。本文将一步一步地引导你从零开始搭建一个 Vue 3 后台管理系统,内容涵盖路由、权限管理、状态管理等核心功能,并且会…...
never_give_up
一个很有意思的题: never_give_up - Bugku CTF平台 注意到注释里面有1p.html,我们直接在源代码界面看,这样就不会跳转到它那个链接的: 然后解码可得: ";if(!$_GET[id]) {header(Location: hello.php?id1);exi…...
DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载
思维速览: 本文将详细介绍如何利用DeepSeek结合Mermaid语法绘制各类专业图表,帮助你提高工作效率和文档质量。 ▍DeepSeek入门使用请看:deepseek保姆级入门教程(网页端使用 本地客户端部署 使用技巧) DeepSeek官网…...
「基于大模型的智能客服系统」语义理解、上下文记忆与反馈机制设计
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
【后端】【django】导出 API 文档的几种方法
在 Django 项目里,导出 API 文档是很常见的需求,一般可以借助第三方库来实现。 使用 drf-yasg 导出 Swagger/OpenAPI 格式文档 drf-yasg 是一个用于 Django REST framework 的工具,能够自动生成 Swagger 和 OpenAPI 格式的 API 文档。 步骤…...
【HarmonyOS Next之旅】DevEco Studio使用指南(二)
目录 1 -> 工程模板介绍 2 -> 创建一个新的工程 2.1 -> 创建和配置新工程 2.1.1 -> 创建HarmonyOS工程 2.2.2 -> 创建OpenHarmony工程 1 -> 工程模板介绍 DevEco Studio支持多种品类的应用/元服务开发,预置丰富的工程模板,可以根…...
鸿蒙Next开发与实战经验总结
文章目录 1. 鸿蒙Next概述与开发环境搭建1.1 鸿蒙Next的核心特性1.2 开发环境搭建与工具链安装步骤工具链 1.3 第一个鸿蒙Next应用代码示例流程图 2. 鸿蒙Next应用架构与设计模式2.1 应用架构解析2.2 常用设计模式2.3 组件化开发实践 3. UI开发与布局系统3.1 基础UI组件3.2 布局…...
uniapp实现 uview1 u-button的水波纹效果
说明: 由于uview2已经移除水波纹效果,这边又觉得那个效果好看,所以开发这个功能(原谅我不会录动图) 效果: 具体代码: <view class"ripple-container" touchstart"handleTouchStart" touchend&…...
Linux练级宝典->任务管理和守护进程
任务管理 进程组概念 每个进程除了进程ID以外,还有一个进程组,进程组就是一个或多个进程的集合 同一个进程组,代表着他们是共同作业的,可以接收同一个终端的各种信号,进程组也有其唯一的进程组号。还有一个组长进程&a…...
金融行业替换传统的FTP传输系统的必要性
在如今这个数字化飞速发展的时代,金融行业对于信息安全性和数据传输效率的要求简直高得离谱。可是呢,你可能想不到,很多金融机构竟然还在用传统的FTP(文件传输协议)来处理日常的数据交换。 FTP在过去几十年里确实是网络…...
C# backgroundworker类(后台线程)
概念 在C#程序中,经常会有一些耗时较长的CPU密集型运算,如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题。解决这类问题的主要途径是使用多线程,启动一个后台线程,把运算操作放在这个后台线程中完成。但是原生接口的线程…...
OpenAI智能体初探:使用 OpenAI Responses API 在 PDF 中实现检索增强生成(RAG)
大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 引子 在信息爆炸的时代,从大量 PDF 文档中快速准确地检索信息…...
SqlServer数据库报错紧急或可疑无法访问的修复过程,亲测有效。
当 SQL Server 数据库被标记为 SUSPECT 状态时,表示数据库可能由于事务日志损坏、数据文件丢失或其他严重问题而无法正常启动。以下是一个详细的恢复步骤,基于搜索结果中的信息和常见的最佳实践: 恢复步骤 1. 确认数据库状态 将database-n…...
12.31[net]review
复用(Multiplexing)的概念 定义:在传输层,复用是指多个应用进程可以使用同一个传输层协议(如 TCP 或 UDP)来发送数据。从应用层的角度看,不同的应用进程(如网页浏览器、邮件客户端等…...
Redis超高并发分key实现
Redis扛并发的能力是非常强的,所以高并发场景下经常会使用Redis,但是Redis单分片的写入瓶颈在2w左右,读瓶颈在10w左右,如果在超高并发下即使是集群部署Redis,单分片的Redis也是有可能扛不住的,如下图所示&a…...
Houdini学习笔记
1. Houdini中一次只能显示一个物体 如果要都显示 需要 merge 节点 粉色的是 以参考显示 2.对任意一个节点按F1 可以弹出houdini官方文档 3. 恢复视角 Space H,居中 Space G 居中选中物体...
Ubuntu 22.04使用pigz多线程快速解压/压缩文件
最近搞项目,资料太大,解压时间太久,于是想办法解决。 开贴记录。 1.安装pigz sudo apt install pigz 2.解压资料 解压命令为 tar --use-compress-programpigz -xvpf ***.tar.gz 将最后的部分***.tar.gz换成你自己的文件即可 例如 ti…...
子数组问题——动态规划
个人主页:敲上瘾-CSDN博客 动态规划 基础dp:基础dp——动态规划-CSDN博客多状态dp:多状态dp——动态规划-CSDN博客 目录 一、解题技巧 二、最大子数组和 三、乘积最大子数组 四、最长湍流子数组 五、单词拆分 一、解题技巧 区分子数组&…...
汉桑科技IPO:潜藏两大风险 公众投资者权益或受损
冰山之所以危险,是因为只有八分之一在水面上。 ——语出小说家海明威。 引 言 野村证券提供的一份报告显示,2025年前两个月,我国出口同比增长仅有2.3%,与去年四季度9.9%的增长显著下滑。与此同时,从2月1日开始&a…...
【3DGS】SuperSplat本地运行+修改监听端口+导入ply模型+修剪模型+在线渲染3DGS网站推荐
SuperSplat官网代码:https://github.com/playcanvas/supersplat 本地安装和运行 Clone the repository: git clone https://github.com/playcanvas/supersplat.git cd supersplat Install dependencies: npm install Build SuperSplat and start a local web ser…...
整数与字节序列相互转换
以下函数是用于二进制编解码的核心工具函数,实现 32/64 位整数与字节流之间的高效转换。 操作逻辑:将整数的每个字节依次写入缓冲区,从最低有效字节到最高有效字节内存布局:假设 value0x12345678,地址由低到高依次是0…...
嵌入式软件测试的东方智慧:WinAMS工具的技术哲学与实践启示——一名汽车电子工程师的七年工具演进观察
引言:在丰田精益生产线上诞生的测试哲学 2017年参与某日系车企的ECU(电子控制单元)联合开发时,我第一次在名古屋工厂见到产线旁部署的WinAMS测试站。不同于欧美工具强调的“全流程覆盖”,这个诞生于日本制造业精益文化…...
卫星遥感赋能气象服务:精准预测,智享生活
卫星遥感技术作为现代气象服务的“千里眼”和“顺风耳”,正以前所未有的精度和效率,革新着我们对天气的观测、预报与应对方式。今天,就让我们一同探索卫星遥感在气象服务中的奇妙应用。 星图云开放平台:专业气象的智慧之选 高精度…...
多个nodejs版本切换使用教程
想要多个nodejs版本来回切换TOC 先卸载本地已安装的nodejs下载安装nvm ,下载地址:https://github.com/coreybutler/nvm-windows/releases打开链接后 ,选择 nvm-setup.exe 安装,安装路径避免空格和中文(如 D:\nvm) 选择…...
Vue.js 3 的设计思路:从声明式UI到高效渲染机制
目录 一、声明式UI与虚拟DOM的灵活性 二、渲染器:虚拟DOM到真实DOM的桥梁 三、组件的本质与实现 四、编译与运行时的协同优化 五、性能与可维护性的权衡 总结 Vue.js 3 作为新一代前端框架,其设计理念在声明式UI描述、虚拟DOM优化、组件化架构…...