美文网首页Dart
流程控制语句

流程控制语句

作者: 码农修行之路 | 来源:发表于2020-11-23 23:26 被阅读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断言

    • assert条件为false时,执行流程会被中断
    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

    相关文章

      网友评论

        本文标题:流程控制语句

        本文链接:https://www.haomeiwen.com/subject/xuybiktx.html