Flutter学习笔记(6)--Dart流程控制语句
如需转载,请注明出处:Flutter学习笔记(5)--Dart流程控制语句
-
条件语句:if、if...elseif、if...elseif...else
int score = 90; if (score >=90) { print('优秀'); } else if (80>=score && score<90) { print('良'); } else if (60>=score && score<80) { print('及格'); } else { print('不及格'); } //优秀
-
循环语句:for、forin
//使用for循环 var list = [1,2,3]; for(var i=0; i<list.length; i++) { print(list[i]); } //使用forin循环 for (var item in list) { print(item); } /* 1 2 3 */
-
循环语句:while循环、do...while循环
//while 先判断条件在执行 int i = 0; while (i < 2) { print(i++); }; /* 0, 1 */ //do...while 先执行一次在判断条件,至少执行一次 do { print(i--); } while (i > 0 && i < 3); /* 0, 1 */
-
终止当前循环:break 终止离break最近的循环,只能终止一层循环
//当i==2时候已经终止循环了 for (var i = 0; i < 4; i++) { if (i == 2) { break; } print(i); } /* 0, 1 */ //break终止的只是当前循环,只能终止一层循环 for (var i = 0; i < 2; i++) { for (var j = 0; j < 4; j++) { if (j == 1) { break; } print('[$i,$j]'); }; }; /* [0,0] [1,0] */
-
跳出当前循环:continue 跳出当前循环,只能跳出一层循环
//当i==2时候已经跳出循环,执行下一次循环 for (var i = 0; i < 4; i++) { if (i == 2) { continue; } print(i); } /* 0, 1, 3 */ //contiue跳出的只是当前循环,只能跳出一层循环 for (var i = 0; i < 2; i++) { for (var j = 0; j < 4; j++) { if (j == 1) { continue; } print('[$i,$j]'); }; }; /* [0,0] [0,2] [0,3] [1,0] [1,2] [1,3] */
-
switch...case语句
-
比较类型可以有:num、String、编译期常量、对象、枚举
-
非空case必须有一个默认情况
-
default 处理默认情况
-
continue 跳转标签
//language 也可以是num、String、编译期常量、对象、枚举这几种类型 String language = 'java'; switch(language) { case 'dart': print('dart language'); break; case 'java': print('java language'); break; case 'python': print('python language'); break; default: print('none'); } //java language /* 用continue跳转到位置执行最近的case TopTest名字可以随便起 */ switch(language) { case 'dart': print('dart language'); break; case 'java': print('java language'); continue TopTest //break; case 'python': print('python language'); break; TopTest: default: print('none'); } /* java language none */
-
assert 中断代码流
Dart语言通过使用assert语句来中断正常的执行流程,当assert判断的条件为false时,发生中断,assert判断的条件时任何可以转化为boolean类型的对象,即使是函数也可以,如果assert的判断为true,则继续执行下面的语句;
-
如果一个布尔条件值为false,使用assert语句来中断正常执行的代码
-
Assert语句仅仅只能在调试模式下使用,在生产模式下没有任何作用。
-
在assert语句后面的括号中,你可以加入任何表示布尔值或者函数的表达式。
-
如果表达式的值或者函数返回值true,则assert语句成功并继续执行代码。如果值为false,则assert语句失败并抛出一个异常。
//确保这个变量不为空值. assert(text != null); //确保这个变量小于100. assert(number < 100); //确保它是一个https协议类型的URL. assert(urlString.startsWith(‘https’));