1.for循环
for循环在程序开发中非常常见,dart中for的用法和其他语言比较相似:
//1.打印出1-50的整数
for (int i = 1; i <= 50; i++) {
print('print:$i');
}
//打印出List中的所有元素
List<String> list = ["aaa", "bbb", 'ccc'];
for (int i = 0; i < list.length; i++) {
print('element:${list[i]}');
}
//复杂的List对象
var titleList = [
{"title": '111'},
{"title": "222"}
];
for (int i = 0; i < titleList.length; i++) {
print('title:${titleList[i]['title']}');
}
//打印二维数组
var newList = [
{
"cate": '国内',
"news": [
{"title": 'New1'},
{"title": 'New2'}
]
},
{
"cate": '国际',
"news": [
{'title': 'Big1'},
{'title': 'Big2'}
]
}
];
for (int i = 0; i < newList.length; i++) {
print('cate:${newList[i]['cate']}');
var obj = newList[i]['news'];
if (obj is List) {
for (var j = 0; j < obj.length; j++) {
print('title:${obj[j]['title']}');
}
}
}
以上举了几种常见的for循环场景。
2.while和do..while
while(表达式/循环条件) {}
do { 语句/循环体 }while(表达式/循环条件);
这边需要注意的是:1)do..while最后的分号不能忘记 2)循环条件中使用的变量需要进行初始化 3)循环体中,应该有结束循环的条件,否则会造成死循环。
//1--100的和
int i = 0;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
print(sum);
int j = 0;
int sumB = 0;
do {
sumB += j;
j++;
} while (j <= 100);
print(sumB);
while和do..while存在差别:第一次循环条件不成立的情况下,while不会执行循环体,而do..while至少执行一次。
int i = 10;
while (i < 2) {
print('执行while循环');
}
do {
print('执行do..while循环');
} while (i < 2);
3.continue
在执行for循环时,如果我们想跳过本次循环而下面的循环依旧正常,则可以使用continue。
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
print(i);
}
如上面的例子,打印0-9中除了5的数。
4.break
如果在执行某次循环时,想跳出整个循环,则可以使用break。注意它只是向外跳出一层循环,如果程序是多层循环,则外层的循环依旧会执行。
for (int i = 0; i < 10; i++) {
if (i == 6) {
break;
}
print(i);
}
for (int m = 0; m < 5; m++) {
for (int n = 0; n < 5; n++) {
if (n == 3) {
break;
}
print('current m:$m,n:$n');
}
}
while循环和switch也是可以使用break跳出。可见之前的switch例子。