有时某些指令需要重复执行,循环是一种理想的方法。循环表示必须重复的一组指令。在循环的上下文中,重复称为迭代。
下图说明了循环的分类 -

下面我们首先来了解确定(Definite)循环 。迭代次数是明确/固定的循环称为确定循环。
| 编号 | 循环 | 描述 | 
|---|---|---|
| 1 | for循环 | for循环是一个确定循环的实现,用于执行代码块指定的次数。 | 
| 2 | for…in循环 | for...in循环用于循环对象的属性。 | 
接下来了解无限循环。当循环中的迭代次数不确定或未知时使用不定循环。可以使用以下方式实现无限循环:
| 编号 | 循环 | 描述 | 
|---|---|---|
| 1 | while循环 | 每次指定的条件求值为 true时,while循环都会执行指令。在执行代码块之前评估条件。 | 
| 2 | do…while循环 | do...while循环类似于while循环,只是do...while循环不会在第一次循环执行时评估条件。 | 
接下来学习Dart的循环控制语句。
| 编号 | 控制语句 | 描述 | 
|---|---|---|
| 1 | break语句 | break语句用于将控件从构造中取出。在循环中使用break会导致程序退出循环。 | 
| 2 | continue语句 | continue语句跳过当前迭代中的后续语句,并将控制权带回循环的开头。 | 
使用标签来控制流程
标签只是一个标识符,后跟冒号(:)应用于语句或代码块。标签可以与断点一起使用,并继续更精确地控制流程。
continue或break语句与其标签名称之间不允许换行。此外,标签名称和关联循环之间不应该有任何其他语句。
示例:带有break的标签
void main() { 
   outerloop: // This is the label name 
   for (var i = 0; i < 5; i++) { 
      print("Innerloop: ${i}"); 
      innerloop: 
      for (var j = 0; j < 5; j++) { 
         if (j > 3 ) break ; 
         // Quit the innermost loop 
         if (i == 2) break innerloop; 
         // Do the same thing 
         if (i == 4) break outerloop; 
         // Quit the outer loop 
         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
示例:带continue的标签
void main() { 
   outerloop: // This is the label name 
   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
						上一篇:
								Dart条件决策语句
												下一篇:
								Dart数字
												
						
						
					
					
					