上节课,我们讲解了创建Dart的第一个例子,下面我们来讲解自己创建一个Hello World的例子。
1 Hello World
- Dart 程序必须有顶层
main()函数,程序从这里开始运行 - 无返回值函数写
void print()控制台打印文字
// 程序入口
void main() {
print('Hello, World!');
}
Code language: Dart (dart)
继续以我们上节课的创建的项目为例,打开 C:\dartdemo\firstdart\bin下的firstdart.dart
修改里面的代码为上面的代码

然后cmd到C:\dartdemo\firstdart 这个目录 执行dart run命令
C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
Hello, World!Code language: CSS (css)
2 变量(var 自动推断类型)
- 用
var定义变量,Dart 会根据赋值自动识别类型,不用手动写类型名 - 支持字符串、数字、小数、数组、字典(对象)
例子
// 程序入口
void main() {
var name = '旅行者一号'; // 字符串String
var year = 1977; // 整数int
var width = 3.7; // 小数double
var planets = ['木星','土星']; // 数组List
var info = {
'tag': ['土星'],
'url': '图片地址'
}; // 字典Map
}
Code language: Dart (dart)
以上定义了一些,变量,变量是用来存储数据,相当于一小块内存区域,这个区域,你给它起了一个名字。有了这个名字就方便你去操作这块内存了。
这块内存理论上可以存储任何010101的数据,计算机所有数据都是01010组成。之所以有一个类型,比如字符串 整数,目的是方便去解析这些数据,比如编译器知道是int 就已整数的方式去读取。
如果你要操作上面的变量
// 程序入口
void main() {
var name = '旅行者一号'; // 字符串 String
var year = 1977; // 整数 int
var width = 3.7; // 小数 double
var planets = ['木星', '土星']; // 数组 List
var info = {
'tag': ['土星'],
'url': '图片地址'
}; // 字典 Map
// 字符串使用示例
print('探测器名称:$name');
print('名称长度:${name.length}');
print('是否包含“号”:${name.contains('号')}');
// 整数使用示例
print('发射年份:$year');
print('距今已过去:${DateTime.now().year - year} 年');
// 小数使用示例
print('探测器宽度:$width 米');
print('宽度的平方:${width * width}');
// 数组使用示例
print('目标行星列表:$planets');
planets.add('天王星'); // 添加元素
print('更新后的行星列表:$planets');
print('第一个目标:${planets[0]}');
// 字典使用示例
print('信息标签:${info['tag']}');
print('图片地址:${info['url']}');
info['status'] = '运行中'; // 添加新键值
print('完整信息:$info');
}
Code language: PHP (php)
以上是用到格式化输出,我们还没学,读者可以先理解一下。后面会学习到这块内容。
3 流程控制语句(判断 / 循环)
if else 判断
通过if 后面的括号中的条件,来执行不同的语句,如果条件是真 true,则执行if后面的{ }中的代码,否则就执行else后面的代码

if (条件) {
// 当条件为 true 时执行
} else {
// 当条件为 false 时执行
}Code language: JavaScript (javascript)
例如判断是否超速了,可以这样写。
var speed = 25;
if (speed > 60) {
print('超速了!');
} else {
print('速度正常。');
}Code language: PHP (php)
还可以多次判断
if (speed > 100) {
print('危险!');
} else if (speed > 60) {
print('有点快。');
} else {
print('安全驾驶。');
}Code language: PHP (php)
void main() {
var year = 1977;
if (year >= 2001) {
print('21世纪');
} else if (year >= 1901) {
print('20世纪');
}
}
Code language: Dart (dart)
C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
20世纪Code language: CSS (css)
for 遍历数组(for-in)
在 Dart 中,for‑in 循环是一种简洁方式,用来遍历 List、Set 或其他可迭代对象。
遍历数组或者列表中是否含有下一个元素,有就执行{}中的,没有就跳到后面,结束语句。
语法如下:
for (var item in collection) {
// 使用 item
}Code language: JavaScript (javascript)

看例子
void main() {
var planets = ['木星','土星'];
for (final item in planets) {
print(item);
}
}
Code language: Dart (dart)
执行结果
C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
木星
土星Code language: CSS (css)
普通数字 for 循环
从i=1 开始 一直到12 包括12 因为用了<= 每次print 后,就跑到i++这个位置
void main() {
for (int i = 1; i <= 12; i++) {
print(i);
}
}Code language: JavaScript (javascript)

执行结果
C:\dartdemo\firstdart>dart run
Building package executable...
Built firstdart:firstdart.
1
2
3
4
5
6
7
8
9
10
11
12Code language: CSS (css)
- 先执行int i = 1
- 然后判断条件 i <=12 是否成立
- 成立就掉到print (i),然后输出1
- 然后再到i++,i变成2,
- 然后再判断i<=12,因为 2<=12 是true,就继续print(i) 输出2
- 然后又到i++ 然后又判断i<=12
- …..
- 直到i变成了13的时候, i<=12 就不成立了。然后就直接到跳出这个for循环了,到后面
其中int i=1; 只有一开始执行一次。 后面就不在执行了,其实这个int i = 1;目的就是为了给i赋值。你完全可以写成
void main() {
int i = 1;
for (; i <= 12; i++) {
print(i);
}
}
Code language: Dart (dart)
4. while 循环
while 循环和for循环类似,在 Dart 中,while 循环用于在条件为真时重复执行一段代码。它的语法非常简单:
while (条件) {
// 循环体
}Code language: JavaScript (javascript)
执行逻辑:
- 先判断条件是否为
true。 - 若为真,执行循环体。
- 执行完后再次判断条件。
- 当条件为
false时,循环结束。
什么时候,条件才会为false,需要你再循环体里面 改变一些变量,是的条件会变为false,如果不改变,可能会出现一直循环下去,也就是死循环。
var year = 2010;
while(year < 2016){
year += 1;
}
Code language: JavaScript (javascript)
可以分解为以下执行步骤 👇
初始化阶段
- 定义变量
year,初始值为2010。
条件判断阶段
- 判断
year < 2016是否为真。 - 若为真,进入循环体;若为假,跳出循环。
循环体执行阶段
- 执行
year += 1,即year = year + 1。 - 每次循环让
year增加 1。
重复判断阶段
- 再次检查条件
year < 2016。 - 当
year从 2010 增加到 2015 时,条件仍为真。 - 当
year增加到 2016 时,条件为假,循环结束。
结束阶段
- 循环结束后,
year的最终值为 2016。
这个循环执行了 6 次(从 2010 到 2015),每次让 year 增加 1,直到条件不再成立。如果再循环体里面没有改变year的值,那么就会一直循环下去的。读者需要注意这里。