Dart

流程控制语句

2020-11-23  本文已影响0人  码农修行之路

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断言

main() {
    var name;  
    assert(name != null);  // 抛出异常 Failed assertion: line 79 pos 10: '<optimized out>': is not true.
    print('执行结束');
}

<meta name="source" content="lake">assert 语句只在开发环境中有效, 在生产环境是无效的; Flutter 中的 assert 只在 debug 模式 中有效。 开发用的工具,例如 dartdevc 默认是开启 assert 功能。 其他的一些工具, 例如 dartdart2js, 支持通过命令行开启 assert : --enable-asserts

上一篇下一篇

猜你喜欢

热点阅读