# 9.循环语句

# ++ --

  • ++ -- 表示自增 自减
  • 在赋值运算里, 如果 ++ -- 写在前面, 这时候先运算, 再赋值
  • 再赋值运算里, 如果 ++ -- 写在后面, 这时候先赋值, 再运算
void main() {
  // ++ --
  var a = 10;
  a++;      // a = a + 1
  print(a); // 11


  var b = 10;
  b--;
  print(b);

  // ++写在后面 先赋值运算, 再自增
  var c = 10;
  var d = c++;
  print(c); // 11
  print(d); // 10

  // ++写在前面 先自增, 再赋值运算
  var e = 10;
  var f = ++e;
  print(e); // 11
  print(f); // 11

  // -- 同理
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# for循环

  // 打印1-10的值
  for(int i=1; i<=10;i++) {
    print(i);
  }
1
2
3
4

# while do...while

/**
 * while(表达式/循环条件) {
 * 
 * }
 * 
 * do {
 *  语句/循环体
 * 
 * }while(表达式/循环条件);
 * 
 * 注意:  1.最后的分号不要忘记
 *        2.循环条件中使用的变量需要经过初始化
 *        3.循环体中, 应有结束循环的条件, 否则会造成死循环
 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14

示例

void main() {
  // 1.打印1-10的数字
  int i = 1;
  while(i<=10) {
    print(i);
    i++;
  }

  // 2.求 1+2+3+4+...+100的和
  // while
  int j=1;
  var sum=0;
  while(j<=100) {
    sum+=j;
    j++;
  }
  print(sum);  // 5050


  // do..while
  int k = 1;
  var sum2 = 0;
  do {
    sum2 += k;
    k++;
  }while(k<=100);

  print(sum2);  // 5050

  // while 和 do while的区别  第一次循环条件不成立的情况下
  int x=10;
  while(x<2) {
    print('执行代码--x');  // 不会打印
  }

  var y = 10;
  do{
    print('执行代码--y');   // 执行代码--y
  }while(y<2);
  
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

# break和continue

/**
 * break语句功能:
 *    1.在switch语句中使流程跳出switch结构.
 *    2.在循环语句中使流程跳出当前循环, 遇到break 循环终止, 后面代码也不会执行
 * 
 *    强调:
 *    1.如果在循环中已经执行了break语句, 就不会执行循环体中位于break后的语句
 *    2.在多层循环中, 一个break语句只能向外跳出一层
 * 
 *  break可以用在 switch case中, 也可以用在 for 循环 和 while循环中
 * 
 *  continue语句的功能:
 *    [注] 只能在循环语句中使用, 使本次循环结束, 即跳过循环体重下面尚未执行的语句, 接着进行下
 *    continue可以用在for循环以及 while循环中, 但是不建议用在while循环中, 不小心容易死循环
 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

示例



main() {
    for (int i = 1; i <= 10; i++) {
      print(i);
    }

    // 1.如果i等于4的话跳过
    for (int i = 1; i <= 10; i++) {
      if(i==4) {
        continue; // 跳过当前循环体, 然后循环还会继续执行
      }
      print(i);
    }

    // 2.如果 i等于4的话跳出循环
        for (int i = 1; i <= 10; i++) {
      if(i==4) {
        break; // 跳出当前循环体, 循环不会继续执行
      }
      print(i);
    }

    // 3.break语句只能向外跳出一层
    for(var i=0;i<5;i++) {
      
      print('外层---$i');
      for(var j=0;j<3;j++) {
        if(j==1) {
          break;
        }
        print('里层$j');
      }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
上次更新: 2021/2/21 下午7:52:17