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),仅供参考