Dart初级阶段03(循环结构)

127 阅读2分钟

hello,本篇内容是Dart语言的循环结构的介绍,如果你想对Dart基础数据类型有所了解,请点击这里

如果我们要重复执行某一段代码,可以使用循环结构。

在Dart中循环格式主要有以下几种:
1. for循环
2. for...in...循环
3. while循环
4. do-while循环
  1. for循环,格式如下:
for(1; 2; 3){
	4;
}
1: 循环变量初始化, 
2: 循环条件, 条件成立, 只执行一次执行循环
3: 循环变量改变(增加/减少)
4: 循环体, 反复执行的代码
循环次数 = (不满足循环条件的第一个循环变量 - 循环变量初始值) / 循环增量

示例1:输出5遍“奥利给!”

 for (int i = 0; i < 5; i++) {
    print("奥利给!");
 }

示例2:输出1-5的值

  for (int i = 0; i < 5; i++) {
    print(i + 1);
  }
  //或者
  for (int i = 1; i <= 5; i++) {
    print(i);
  }

示例3:计算1+2+3+...+100的结果

 int sum = 0;
  for (int i = 1; i < 101; i++) {
    sum = sum + i;
  }
  print("sum = $sum");

示例4:找到1-100之间,凡是带7或者能被7整数的数,输出"过", 否则输出该数

  for (int i = 1; i < 101; i++) {
    if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
      print("过");
    } else {
      print(i);
    }
  }

示例5:找到1-1000之间, 十位数是7的数

for (int i = 1; i < 1000; i++) {
    if ((i % 100 / 10) == 7) {
      print(i);
    }
    if (i / 10 % 10 == 7) {
      print(i);
    }
 }
  1. for循环嵌套
  • 外层循环: 控制输出的行数
  • 内层循环: 控制输出的内容
  • 注意: 外层循环执行一次,内层循环执行一遍(一轮)

示例6:通过双层for循环实现如下效果:

/*
1 
1 2
1 2 3 
1 2 3 4
1 2 3 4 5
*/
for (int i = 0; i < 5; i++) {
    for (int j = 0; j <= i; j++) {
      stdout.write(j + 1);
    }
    print("\n");
}

//思考如下输出的逻辑,大家不要只为了学习某个语法,更多锻炼自己的逻辑思维能力:
/*
3 
3 2 
3 2 1
*/
/*
3 2 1 
3 2 
3
*/
  1. for...in...循环,for...in循环用于循环对象的属性。

在每次迭代中,对象的一个属性分配给变量名称,并且此循环继续,直到对象的所有属性都用完为止。

 var list = [12, 13, 14];
  for (var item in list) {
    print(item);
  }
  1. while循环,格式如下:
while(条件表达式){
    循环体;
}
执行顺序: 先判断循环条件是否成立,如果成立执行循环体,否则,不再执行循环体

示例7:计算10-100之间所有偶数的和

  int s = 10, sum = 0;
  while (s <= 100) {
    if (s % 2 == 0) {
      sum = sum + s;
    }
    s++;
  }
  print("sum = $sum");

示例8:随机生成10个数,要求范围在10-99之间

//注意:使用Random类型,需要引入头文件 import 'dart:math';
var random = new Random();
  int b = 10;
  while (b > 0) {
    //产生随机数
    int temp = random.nextInt(100);
    //改变循环变量
    if (temp >= 10) {
      print(temp);
      b--;
    }
 }
  1. do-while循环,格式如下:
do{
    循环体;
}while(条件表达式)
执行顺序: 先执行循环体,再执行条件表达式,如果条件表达式成立, 继续执行循环体,不成立,循环结束
注: 至少执行一次循环体

示例9:遍历100以内,包含7的数输出“过”,否则输出该数

  int i = 1;
  do {
    //判断
    if (i % 7 == 0 || i % 10 == 7 || i ~/ 10 == 7) {
      print("过");
    } else {
      print(i);
    }
    i++;
  } while (i <= 100);

示例10:判断一个整数的位数

 num number = 314159262342;
  int count = 0;
  do {
    number = number ~/ 10;
    count++;
  } while (number != 0);
  print("count = $count");
  1. Dart中循环控制语句:break、continue、return
  • break : 退出最近的一层循环,如果是两层嵌套循环,在内层循环中有break语句,外层循环继续。
  • continue : 结束本次循环,开始下一次循环。

示例11:关于break的基础使用

 for (int i = 0; i < 5; i++) {
    if (i < 3) {
      print("Hello world $i");
      break;
    }
 }

示例12:关于continue的基础使用

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
      if (j == 2) {
        continue;
      }
      print("HelloWorld $j");
    }
  }

循环总结

  1. for循环: 多使用在明确循环次数的循环,而且是我们以后常用的循环结构, 重点是循环嵌套.
  2. while循环: 多用于不明确循环次数的循环中,知道循环结束的标识,先判断条件,再执行循环.
  3. do...while循环: 多用于不明确循环次数的循环中,知道循环结束的标识, 先执行循环体, 再判断循环条件是否满足,无论条件是否满足,循环体都要执行一次.
  4. break && continue:break: 结束本层循环, 循环终止, 终止的是离它最近的循环;continue: 结束本次循环,continue后面的循环代码不再执行继续执行下一次循环
  5. 循环的重要四部分:
  • 循环变量初始化
  • 循环条件的判断
  • 循环体
  • 循环增量