Dart--for循环、while和do..while、continue、break

58 阅读1分钟

1.for循环

for循环在程序开发中非常常见,dart中for的用法和其他语言比较相似:

//1.打印出1-50的整数
  for (int i = 1; i <= 50; i++) {
    print('print:$i');
  }

  //打印出List中的所有元素
  List<String> list = ["aaa", "bbb", 'ccc'];
  for (int i = 0; i < list.length; i++) {
    print('element:${list[i]}');
  }

  //复杂的List对象
  var titleList = [
    {"title": '111'},
    {"title": "222"}
  ];
  for (int i = 0; i < titleList.length; i++) {
    print('title:${titleList[i]['title']}');
  }

  //打印二维数组
  var newList = [
    {
      "cate": '国内',
      "news": [
        {"title": 'New1'},
        {"title": 'New2'}
      ]
    },
    {
      "cate": '国际',
      "news": [
        {'title': 'Big1'},
        {'title': 'Big2'}
      ]
    }
  ];

  for (int i = 0; i < newList.length; i++) {
    print('cate:${newList[i]['cate']}');
    var obj = newList[i]['news'];
    if (obj is List) {
      for (var j = 0; j < obj.length; j++) {
        print('title:${obj[j]['title']}');
      }
    }
  }

以上举了几种常见的for循环场景。

2.while和do..while

while(表达式/循环条件) {}

do { 语句/循环体 }while(表达式/循环条件);

这边需要注意的是:1)do..while最后的分号不能忘记 2)循环条件中使用的变量需要进行初始化 3)循环体中,应该有结束循环的条件,否则会造成死循环。

//1--100的和
  int i = 0;
  int sum = 0;
  while (i <= 100) {
    sum += i;
    i++;
  }
  print(sum);

  int j = 0;
  int sumB = 0;

  do {
    sumB += j;
    j++;
  } while (j <= 100);
  print(sumB);

while和do..while存在差别:第一次循环条件不成立的情况下,while不会执行循环体,而do..while至少执行一次。

int i = 10;
  while (i < 2) {
    print('执行while循环');
  }
  do {
    print('执行do..while循环');
  } while (i < 2);

3.continue

在执行for循环时,如果我们想跳过本次循环而下面的循环依旧正常,则可以使用continue。

for (int i = 0; i < 10; i++) {
    if (i == 5) {
      continue;
    }
    print(i);
  }

如上面的例子,打印0-9中除了5的数。

4.break

如果在执行某次循环时,想跳出整个循环,则可以使用break。注意它只是向外跳出一层循环,如果程序是多层循环,则外层的循环依旧会执行。

for (int i = 0; i < 10; i++) {
    if (i == 6) {
      break;
    }
    print(i);
  }

  for (int m = 0; m < 5; m++) {
    for (int n = 0; n < 5; n++) {
      if (n == 3) {
        break;
      }
      print('current m:$m,n:$n');
    }
  }

while循环和switch也是可以使用break跳出。可见之前的switch例子。