if-else语句
条件必须使用布尔值 不能使用其它类型 可以使用null
main() {
var bo = 2;
if (bo == 1) {
print(‘bo 为 1’);
} else if (bo == 2) {
print(‘bo 为 2’);
} else {
print(‘bo 为 其它’);
}
}
执行结果:
bo 为 2
for循环
forEach 内部也是使用的 for in
main() {
var msg = [22, 33, 55, 88];
for (var index = 0; index < msg.length; index++) {
print(‘${msg[index]}’);
}
/// 使用for in 或 forEach迭代遍历
for (var value in msg) {
print(‘$value’);
}
msg.forEach((value) {
print(‘$value’);
});
}
while 和 do-while
main() {
var size = 0;
while(size < 5) {
print(‘ while 执行步骤 $size’);
size++;
}
/// 无论如何do{}里面的代码都会执行一次 也就是说先执行操作再执行判断条件
do{
print(‘ do while 执行步骤 $size’);
size++;
} while(size < 5);
}
执行步骤:
while 执行步骤 0
while 执行步骤 1
while 执行步骤 2
while 执行步骤 3
while 执行步骤 4
do while 执行步骤 5
break 和 continue
break结束本次循环
continue跳过本次循环继续执行
main() {
var size = 5;
for (int i = 0; i < size; i++) {
if (i == 3) {
/// break 跳出此次循环 不会继续执行
///break;
/// continue 跳过当前逻辑 继续执行
continue;
}
print(‘执行顺序 $i’);
}
}
break执行结果:
执行顺序 0
执行顺序 1
执行顺序 2
continue执行结果:
执行顺序 0
执行顺序 1
执行顺序 2
执行顺序 4
执行顺序 5
执行顺序 6
执行顺序 7
执行顺序 8
执行顺序 9
switch 和 case
Dart中的switch语句 使用== 比较整数、字符串、或者编译时常量 比较的对象必须都是同一个类型的实例(不能是子类)并且类必须没有对==重写 枚举类型也可以使用switch语句
当逻辑判断比较清晰的时候可以用switch case
main() {
var num = 2;
switch (num) {
case 1:
print(‘测试用例1’);
break;
case 2:
print(‘测试用例2’);
break;
case 3:
print(‘测试用例3’);
break;
default:
print(‘通用测试用例’);
break;
}
}
assert断言
assert条件为false时,执行流程会被中断
main() {
var name;
assert(name != null); // 抛出异常 Failed assertion: line 79 pos 10: ‘
print(‘执行结束’);
}
assert 语句只在开发环境中有效, 在生产环境是无效的; Flutter 中的 assert 只在 debug 模式 中有效。 开发用的工具,例如 dartdevc 默认是开启 assert 功能。 其他的一些工具, 例如 dart 和 dart2js, 支持通过命令行开启 assert : —enable-asserts