有时某些指令需要重复执行,循环是一种理想的方法。循环表示必须重复的一组指令。在循环的上下文中,重复称为迭代。
下面我们首先来了解确定(Definite)循环 。迭代次数是明确/固定的循环称为确定循环。
1、for循环
for
循环是一个确定循环的实现,用于执行代码块指定的次数。
var num = 30; for (var i = 0; i < num; i++) { print('num:'+i.toString()); }
var lists = [1,2,3,4,5,6,7,8]; for (var i in lists) { print(i); }
接下来了解无限循环。当循环中的迭代次数不确定或未知时使用不定循环。可以使用以下方式实现无限循环。
3、while循环
每次指定的条件求值为true
时,while
var b = true; int i = 0; // 当 b == false 时, while 循环停止执行 while (b) { i++; if (i == 15) { b = false; } print(i); }
4、do…while循环
do...while
循环类似于while
循环,只是do...while
循环不会在第一次循环执行时评估条件。
do { print('执行了!'); } while (false); // 循环体至少执行一次!
Dart的循环控制语句:
5、break语句
break
语句用于将控件从构造中取出。在循环中使用break
会导致程序退出循环。
在while循环的例子中,也可以使用 break语句来实现退出循环。
var b = true; int i = 0; // 当 b == false 时, while 循环停止执行 while (b) { i++; if (i == 15) { // b = false; break; } print(i); }
6、continue语句
continue
语句跳过当前迭代中的后续语句,并将控制权带回循环的开头。
var lists = [1,2,3,4,5,6,7,8]; for (var i in lists) { if(i == 5){ // 跳过当前循环,执行下一次循环 continue; } print(i); } // 打印结果: 1 2 3 4 6 7 8 只有 5没有打印输出
7、使用标签来控制流程
标签只是一个标识符,后跟冒号(:
)应用于语句或代码块。标签可以与断点一起使用,并继续更精确地控制流程。
continue
或break
语句与其标签名称之间不允许换行。此外,标签名称和关联循环之间不应该有任何其他语句。
示例: 带有break的标签
for (var i = 0; i < 4; i++) { a: for (var j = 0; j < 5; j++) { if (j>3) { break; } // 当 i==2 时,执行break语句 if (i == 2) { break a; } print('i:'+i.toString()+'==='+'j:'+j.toString()); } }
示例: 带有continue的标签
for (var i = 0; i < 4; i++) { a: for (var j = 0; j < 5; j++) { if (j>3) { break; } // 当 i==2 时,执行continue语句 if (i == 2) { continue a; } print('i:'+i.toString()+'==='+'j:'+j.toString()); } }