cosmos 仓库 Dart 入门实战:从 5 道基础编程题掌握输入输出、运算、分支与循环

发布时间:2026/9/23 2:07:25

cosmos 仓库 Dart 入门实战:从 5 道基础编程题掌握输入输出、运算、分支与循环 教程示例工程【免费下载链接】cosmosWorlds largest Contributor driven code dataset | Used in Quark Search Engine, OpenGenus IQ, OpenGenus Visual Project项目地址https://gitcode.com/gh_mirrors/co/cosmos点击查看免费下载本指南以当前仓库 code/languages/dart/README.md 中的 5 道 Dart 入门练习题为主线逐题给出完整、可直接运行的代码实现并结合仓库内 01.data_types.dart、02.condition.dart、03.loop.dart 等配套源码讲解背后的语法要点。读完本篇你将掌握 Dart 的标准输入读取、四则运算与取模、if/else if/else分支判断以及for循环的基本写法并能独立完成同类的命令行小程序。一、环境准备与运行方式Dart 是 Google 推出的面向对象编程语言采用类 C 语法单文件脚本即可运行。在开始解题前先确保本机安装了 Dart SDK。安装完成后在命令行中通过以下任意一种方式运行脚本dart run 01.data_types.dart # 或 dart 01.data_types.dart仓库中的 Dart 练习文件均以main()作为程序入口例如 01.data_types.dart 的结构为void main() { // 程序体 }main()是每个 Dart 命令行程序的固定入口所有可执行语句都写在其中。读取用户输入本指南中的题目要求读取用户输入的两个数。Dart 从控制台读取一行文本的标准写法是import dart:io; void main() { print(请输入一个数字); String? input stdin.readLineSync(); // 读取一行字符串 int a int.parse(input!); // 转换为整数 }关键点说明import dart:io;是引入控制台输入输出库所必需的导入语句stdin.readLineSync()会阻塞等待用户在终端输入一行内容返回类型是String?可空字符串int.parse()负责把字符串转换为整数若输入可能为小数则应改用double.parse()行尾的!是空值断言运算符表示此处不可能是 null这是 Dart 空安全null safety机制的体现——从 Dart 2.12 起所有类型默认不可为空读取输入这种可能失败的操作返回的是可空类型需要显式断言。提示Dart 的基本数值类型与字符串类型在仓库源码 01.data_types.dart 中有直观演示整数用int如int y 5;、小数用double如double z 5.3;、文本用String如String x ikram;并可直接通过对数值做加法。二、Task 1两个数的和、积与差题目要求编写一个 Dart 程序读取用户输入的两个数打印它们的和Sum、乘积Product与差Difference。示例输入输出4、5Sum 9、Product 20、Difference -130、2Sum 32、Product 60、Difference 28从示例可知差值一律用第一个数减去第二个数计算结果允许为负数题目 hint 明确Subtract the second number from the first one即从第一个数中减去第二个数。参考实现import dart:io; void main() { print(请输入第一个数); int a int.parse(stdin.readLineSync()!); print(请输入第二个数); int b int.parse(stdin.readLineSync()!); print(Sum ${a b}); print(Product ${a * b}); print(Difference ${a - b}); }语法要点Dart 中、-、*分别表示加、减、乘运算结果可直接参与打印Sum ${a b}使用了字符串插值string interpolation${表达式}会把花括号内表达式的结果转成字符串嵌入文本。若只是嵌入单个变量也可省略花括号写作Sum $sum。这一特性与仓库 03.loop.dart 中print($x ikram);的用法完全一致。三、Task 2比较两个数的大小题目要求读取两个数若第一个数更大则打印First is greater若第二个数更大则打印Second is greater两者相等则打印The numbers are equal。示例输入 -4、-4 输出The numbers are equal输入 -40、-4 输出Second is greater。参考实现import dart:io; void main() { print(请输入第一个数); int a int.parse(stdin.readLineSync()!); print(请输入第二个数); int b int.parse(stdin.readLineSync()!); if (a b) { print(First is greater); } else if (b a) { print(Second is greater); } else { print(The numbers are equal); } }语法要点本题是if / else if / else分支结构的典型应用。Dart 的判断条件是布尔表达式比较运算符包括大于、小于、、、等于、!不等于分支从上到下依次求值命中第一个为真的分支即执行并跳过其余分支else兜底处理所有未命中的情况仓库 02.condition.dart 演示了同样的三段式结构先if(x10)判断、再else if(x5)二次判断、最后else兜底输出x is not 10 or 5可作为分支书写风格的参照。注意 Dart 中判断相等必须用双等号单个是赋值语句。四、Task 3大数减小数题目要求读取两个数用较大的数减去较小的数打印结果。题目给出了两条 hint先判断哪个数更大减法的顺序是大数减小数。示例输入 -40、-4 输出 36即 -4 − (−40)输入 6、2 输出 4。参考实现import dart:io; void main() { print(请输入第一个数); int a int.parse(stdin.readLineSync()!); print(请输入第二个数); int b int.parse(stdin.readLineSync()!); int result; if (a b) { result a - b; } else { result b - a; } print(result); }语法要点本题与 Task 2 的差异在于分支内不再只是打印而是先计算再输出——体现了分支决定逻辑走向的常见模式注意题目刻意使用负数示例-40 与 -4目的是强调大数减小数是按数值大小比较-4 -40而不是简单地第一个减第二个。若沿用 Task 1 的固定减法顺序会得到错误答案 -36这个先判断、后计算的思路与仓库 02.condition.dart 的分支写法一脉相承可对比学习。五、Task 4判断奇偶数题目要求读取一个整数若为偶数打印The number is even否则打印The number is odd。hint 提示使用取模运算符%并说明数字可按整数处理。示例输入 5 输出The number is odd输入 -44 输出The number is even。参考实现import dart:io; void main() { print(请输入一个整数); int n int.parse(stdin.readLineSync()!); if (n % 2 0) { print(The number is even); } else { print(The number is odd); } }语法要点%是取模求余运算符n % 2的结果为 0 表示n能被 2 整除即为偶数否则为奇数Dart 中%对负数同样成立-44 % 2 0因此负数偶数也能被正确识别与示例输出一致这题的判断条件只关心余数是否为 0是布尔表达式的又一次实践。六、Task 5用 for 循环打印名字 5 次题目要求使用for循环把你的名字打印 5 次。示例中以 Ikram Hasan 为例连续输出 5 行同名文本。参考实现void main() { for (int i 0; i 5; i i 1) { print(Ikram Hasan); } }语法要点for循环由三部分组成初始化语句int i 0;、循环条件i 5;、更新语句i i 1。只要条件为真就反复执行循环体条件为假时循环结束循环从 0 计数到 4共执行 5 次这正是循环i 5而非i 5的原因也是初学者最易出错的地方仓库 03.loop.dart 给出了同构示例for (int x 1; x 10; x x 1) { print($x ikram); }展示了带计数输出的循环写法04.data_structure.dart 则演示了for (int i 0; i nameList.length; i i 1)这种配合list.length遍历集合的进阶用法可作为把本题扩展到遍历姓名列表逐个打印的练习方向。七、练习检验与进阶方向参考答案速查任务核心知识点关键判断/输出Task 1算术运算符 - *、字符串插值固定用第一个数减第二个数Task 2if / else if / else、比较运算符覆盖大于、小于、等于三种情况Task 3分支 计算大数减小数注意负数比较Task 4取模运算符%余数为 0 是偶数Task 5for循环计数从 0 开始i 5恰好 5 次建议的自我检验方式对每道题至少准备 3 组测试输入正数、负数、相等/边界值如 0、-44、30 与 2对照文档给出的示例输出逐条核对尝试把 Task 5 升级为「读取一个名字和一个次数循环打印指定次数」把输入与循环两个知识点串起来结合 04.data_structure.dart 中List与Map的用法把 Task 5 改写为遍历列表输出提前接触 Dart 的集合类型。完成这 5 道题后你已具备 Dart 命令行编程的输入输出、运算、分支与循环四大基本功。仓库中还有更多 Dart 实战代码可供继续学习例如 stack_in_dart.dart 展示了泛型类、可空类型与get属性的写法bubble_sort.dart 展示了函数定义与双重for循环的配合——它们都是把本题所学语法应用到真实算法场景的绝佳后续阅读材料。赞分享教程示例工程【免费下载链接】cosmosWorlds largest Contributor driven code dataset | Used in Quark Search Engine, OpenGenus IQ, OpenGenus Visual Project项目地址https://gitcode.com/gh_mirrors/co/cosmos点击查看免费下载相关推荐终极跨平台macOS下载方案gibMacOS让Windows用户也能轻松获取苹果系统终极跨平台macOS下载方案gibMacOS让Windows用户也能轻松获取苹果系统 你是否曾经因为手头没有Mac电脑而无法获取官方macOS系统文件或者为开发工具零代码数据可视化10分钟用CBoard打造你的第一个智能仪表盘零代码数据可视化10分钟用CBoard打造你的第一个智能仪表盘 还在为复杂的数据分析工具而头疼吗想要快速将数据转化为直观的图表却不知从何下手今天让我们一Logstash 基础管道实战从标准输入采集并输出你的第一个事件Logstash 基础管道实战从标准输入采集并输出你的第一个事件 Logstash 的安装验证通常从一个最基础的管道pipeline开始读取标准输入s数据工程后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/23 2:07:25

NLTK构建可复现文本预处理流水线:深度学习文本分类的确定性基础

简介:本资源是一套基于深度学习的自动文本分类系统实现方案,面向Python自然语言处理初学者与进阶开发者,聚焦文本预处理、特征工程与深度模型训练全流程实践。项目采用NLTK完成分词、停用词过滤等基础NLP任务,并集成CNN、RNN、LST…

2026/9/23 2:07:25

SARIMA时间序列预测实战:从参数选择到避坑指南

简介:针对季节性时间序列预测的MATLAB实现资源,围绕SARIMA(季节性差分自回归滑动平均模型)从数据预处理、平稳性检验、参数选择、模型拟合到预测评估的完整流程展开,适合有统计基础并希望用MATLAB完成季节性数据建模与…

2026/9/23 3:12:28

老照片修复与动态生成全流程:从扫描到AI复活

前阵子帮朋友修一张他奶奶年轻时的黑白照片,本来只是顺手去个划痕、提个清晰度,结果修完发现奶奶的表情是微微侧头的,我一时兴起,用AI生成了一段短视频——画面里她轻轻眨了眨眼,嘴角跟着动了一下。朋友看完愣了好半天…

2026/9/23 3:12:28

再见,SSE!你好,Streamable HTTP:MCP 服务端配置 TaoToken 实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/23 3:12:28

Blender新手入门:清空文件、网格编辑与材质设置全攻略

刚接触 Blender 的朋友,最容易卡住的地方往往不是某个高深功能,反而是"打开软件之后不知道下一步该干嘛"。oeasy 这个系列教程我一直推荐给身边想学三维的人,第15集标题里写着"清空文件、网格、材质",看起来都…

2026/9/23 3:12:28

手机号码913数字能量解析与正财磁场应用

1. 项目背景与核心价值解析"913手机号码测吉凶查询"这个看似简单的数字组合分析工具,实际上融合了传统数字能量学理论与现代移动互联网应用场景。我在数字能量分析领域深耕8年,处理过超过2万组号码案例,发现这类特定数字组合&#…

2026/9/23 3:07:28

3个关键点搞懂幻灯片母版是什么,从入门到精通

3个关键点搞懂幻灯片母版是什么,从入门到精通 官方文档翻了三遍还是晕头转向?别急,今天把【幻灯片母版是什么】拆解成三块硬骨头,10分钟从入门到精通。你公司项目里是怎么处理的?欢迎评论。 一句话原理:母版是PPT的DNA…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码