1. 犀牛前端部落首页
  2. dart

Dart 循环

有的时候,我们需要重复执行一些命令,这个时候就可以使用循环。循环的设计就是循环执行重复的指令。

下图说明了循环的分类:

Dart 循环

让我们开始讨论Definite Loops(确定循环)。 迭代次数是明确/固定的循环称为Definite Loops(确定循环)。

Dart Definite Loops(确定循环)
序号 循环类型&描述
1 for循环&for循环是一个确定循环的实现。 for循环执行代码块指定的次数。 它可用于迭代一组固定的值,例如数组
2 for … in Loop for … in循环用于循环对象的属性。

接下来,我们一起来看一下讨论无限循环。 当循环中的迭代次数不确定或未知时,将使用无限循环。

Dart 无限循环
序号 循环类型&描述
1 while 循环,每次指定的条件求值为true时,while循环都会执行指令。 换句话说,循环在执行代码块之前评估条件。
2 do…while 循环,do … while循环类似于while循环,只是do … while循环不会在第一次循环执行时评估条件。(也就是最少执行一次)

现在让我们继续讨论Dart的循环控制语句。

Dart 循环控制语句
序号 控制语句和描述
1 break 语句,break语句用于将流程从循环中退出。 在循环中使用break会导致程序退出循环。
2 continue语句,continue语句跳过当前迭代中的后续语句,并将控制权带回循环的开头。(也就是跳出当前一次循环,但是不跳出循环本身)

使用标签来控制循环

标签只是一个标识符,后跟冒号(:),应用于语句或代码块。 标签可以与断点一起使用,并继续更精确地控制流程执行顺序。

‘continue’或’break’语句与其标签名称之间不允许换行。 此外,标签名称和关联循环之间不应该有任何其他语句。

Example: Break语句使用标签

void main() { 
   outerloop: //这是一个标签名
   
   for (var i = 0; i < 5; i++) { 
      print("Innerloop: ${i}"); 
      innerloop: 
      
      for (var j = 0; j < 5; j++) { 
         if (j > 3 ) break ;  // 退出最里面的循环
         
         if (i == 2) break innerloop; //也是退出最里面的循环
         
         if (i == 4) break outerloop; //退出外面的循环
         print("Innerloop: ${j}"); 
      } 
   } 
}

成功执行上述代码后,将显示以下输出。

Innerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 2
Innerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 4

Example: continue语句使用标签

void main() { 
   outerloop: // 这是一个标签名
   
   for (var i = 0; i < 3; i++) { 
      print("Outerloop:${i}"); 
      
      for (var j = 0; j < 5; j++) { 
         if (j == 3){ 
            continue outerloop; 
         } 
         print("Innerloop:${j}"); 
      } 
   } 
}

成功执行上述代码后,将显示以下输出。

Outerloop: 0 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 

Outerloop: 1 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 

Outerloop: 2 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/dart/dart-loops.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注