For 循环本质上是一种定循环。Dart 提供给我们的循环主要有两种类型。主要是这些 -
For 循环
for-in 循环
我们将在下面的帖子中探讨这两个循环。
Dart 中的 For 循环遵循 C++ 或 Java 中存在的 for 循环的标准结构。Dart 中 for 循环的结构如下所示 -
for (initialization; condition; step) { // 声明 }
考虑下面显示的示例 -
void main() { for (int i = 0; i < 5; i++) { print('nhooo : ${i + 1}'); } }
在上面的例子中,我们有一个 for 循环,它从 i = 0 开始循环,它会一直运行直到条件 ( i < 5 ) 为真,并且在每次迭代时将 (i) 增加 1,并且在每次迭代中,我们只是打印写在print()函数内部的语句。
nhooo : 1 nhooo : 2 nhooo : 3 nhooo : 4 nhooo : 5
for-in 循环也是一个明确的循环,遵循 Python for-in 循环语法。
for(var x in list/iterator){ // 声明 }
考虑下面显示的例子 -
void main() { var fruits = ['apple','banana','kiwi','mango']; print(fruits); for( var fruit in fruits ){ print("The current fruit is = $fruit"); } }
在上面的例子中,我们有一个名为fruits 的数组,然后我们使用for-in 循环遍历每个fruits 数组元素并打印print()函数中存在的语句。
[apple, banana, kiwi, mango] The current fruit is = apple The current fruit is = banana The current fruit is = kiwi The current fruit is = mango
还应该注意的是,与 JavaScript 不同,for 循环中存在的变量不会被提升。如果我们尝试在 for-in 循环之外打印水果,它只会导致错误。
考虑下面显示的例子 -
void main() { var fruits = ['apple','banana','kiwi','mango']; print(fruits); for( var fruit in fruits ){ print("The current fruit is = $fruit"); } print(fruit); }
lib/main.dart:7:9: Error: Getter not found: 'fruit'. print(fruit); ^^^^^ Error: Compilation failed.