hello,本篇内容是Dart语言的循环结构的介绍,如果你想对Dart基础数据类型有所了解,请点击这里。
如果我们要重复执行某一段代码,可以使用循环结构。
在Dart中循环格式主要有以下几种:
1. for循环
2. for...in...循环
3. while循环
4. do-while循环
- for循环,格式如下:
for(1; 2; 3){
4;
}
1: 循环变量初始化,
2: 循环条件, 条件成立, 只执行一次执行循环
3: 循环变量改变(增加/减少)
4: 循环体, 反复执行的代码
循环次数 = (不满足循环条件的第一个循环变量 - 循环变量初始值) / 循环增量
示例1:输出5遍“奥利给!”
for (int i = 0; i < 5; i++) {
print("奥利给!");
}
示例2:输出1-5的值
for (int i = 0; i < 5; i++) {
print(i + 1);
}
//或者
for (int i = 1; i <= 5; i++) {
print(i);
}
示例3:计算1+2+3+...+100的结果
int sum = 0;
for (int i = 1; i < 101; i++) {
sum = sum + i;
}
print("sum = $sum");
示例4:找到1-100之间,凡是带7或者能被7整数的数,输出"过", 否则输出该数
for (int i = 1; i < 101; i++) {
if (i % 7 == 0 || i % 10 == 7 || i / 10 == 7) {
print("过");
} else {
print(i);
}
}
示例5:找到1-1000之间, 十位数是7的数
for (int i = 1; i < 1000; i++) {
if ((i % 100 / 10) == 7) {
print(i);
}
if (i / 10 % 10 == 7) {
print(i);
}
}
- for循环嵌套
- 外层循环: 控制输出的行数
- 内层循环: 控制输出的内容
- 注意: 外层循环执行一次,内层循环执行一遍(一轮)
示例6:通过双层for循环实现如下效果:
/*
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
*/
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
stdout.write(j + 1);
}
print("\n");
}
//思考如下输出的逻辑,大家不要只为了学习某个语法,更多锻炼自己的逻辑思维能力:
/*
3
3 2
3 2 1
*/
/*
3 2 1
3 2
3
*/
- for...in...循环,
for...in循环用于循环对象的属性。
在每次迭代中,对象的一个属性分配给变量名称,并且此循环继续,直到对象的所有属性都用完为止。
var list = [12, 13, 14];
for (var item in list) {
print(item);
}
- while循环,格式如下:
while(条件表达式){
循环体;
}
执行顺序: 先判断循环条件是否成立,如果成立执行循环体,否则,不再执行循环体
示例7:计算10-100之间所有偶数的和
int s = 10, sum = 0;
while (s <= 100) {
if (s % 2 == 0) {
sum = sum + s;
}
s++;
}
print("sum = $sum");
示例8:随机生成10个数,要求范围在10-99之间
//注意:使用Random类型,需要引入头文件 import 'dart:math';
var random = new Random();
int b = 10;
while (b > 0) {
//产生随机数
int temp = random.nextInt(100);
//改变循环变量
if (temp >= 10) {
print(temp);
b--;
}
}
- do-while循环,格式如下:
do{
循环体;
}while(条件表达式)
执行顺序: 先执行循环体,再执行条件表达式,如果条件表达式成立, 继续执行循环体,不成立,循环结束
注: 至少执行一次循环体
示例9:遍历100以内,包含7的数输出“过”,否则输出该数
int i = 1;
do {
//判断
if (i % 7 == 0 || i % 10 == 7 || i ~/ 10 == 7) {
print("过");
} else {
print(i);
}
i++;
} while (i <= 100);
示例10:判断一个整数的位数
num number = 314159262342;
int count = 0;
do {
number = number ~/ 10;
count++;
} while (number != 0);
print("count = $count");
- Dart中循环控制语句:break、continue、return
break: 退出最近的一层循环,如果是两层嵌套循环,在内层循环中有break语句,外层循环继续。continue: 结束本次循环,开始下一次循环。
示例11:关于break的基础使用
for (int i = 0; i < 5; i++) {
if (i < 3) {
print("Hello world $i");
break;
}
}
示例12:关于continue的基础使用
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 2) {
continue;
}
print("HelloWorld $j");
}
}
循环总结
- for循环: 多使用在明确循环次数的循环,而且是我们以后常用的循环结构, 重点是循环嵌套.
- while循环: 多用于不明确循环次数的循环中,知道循环结束的标识,先判断条件,再执行循环.
- do...while循环: 多用于不明确循环次数的循环中,知道循环结束的标识, 先执行循环体, 再判断循环条件是否满足,无论条件是否满足,循环体都要执行一次.
- break && continue:break: 结束本层循环, 循环终止, 终止的是离它最近的循环;continue: 结束本次循环,continue后面的循环代码不再执行继续执行下一次循环
- 循环的重要四部分:
- 循环变量初始化
- 循环条件的判断
- 循环体
- 循环增量