Dart语言的流程控制语句如下:
- if和else
- for(循环)
- while和do-while(循环)
- break和continue
- switch和case
- assert(断言)
- try-catch和throw
if和else
Dart支持if及else的多种组合,示例代码如下:
String today = 'Monday';
if (today == 'Monday') {
print('今天是星期一');
} else if (today == 'Tuesday') {
print('今天是星期二');
} else {
print('今天是个好日子');
}
上面的代码输出“今天是星期一”,条件语句执行到第一条判断就停止了。
for
下面举例说明for循环,首先定义了一个字符串“Hello coolcou.com”
,然后使用for循环向message变量中写入5个同样的字符“ ! ”,如下所示:
var message = new StringBuffer("Hello coolcou.com");
for (var i = 0; i < 5; i++) {
message.write('!');
}
print(message);
上面的代码会输出“Hello coolcou.com!!!!!”
,注意,值是字符串向尾部添加的。除了常规的for循环外,针对可以序列化的操作数,可以使用for in方法。当不关心操作数的当前下标时,for in方法是很简便的。如下代码所示:
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
print(v);
}
上面的代码会按序列输出0 1 2 3 4 5 6。
while和do-while
下面举例说明while循环,其中定义了一个变量temp。temp在循环体内自动加1,当条件(temp<5)不满足时会退出循环,如下所示:
var _temp = 0;
while(temp < 5){
print("这是一个while循环: " + (_temp).toString());
_temp ++;
}
接下来我们看一下将上例用do-while循环,代码如下所示:
var _temp = 0;
do{
print("这是一个循环: " + (_temp).toString());
_temp ++;
}
while(_temp < 5);
上面的两个示例都对应如下输出:
flutter: 这是一个循环: 0
flutter: 这是一个循环: 1
flutter: 这是一个循环: 2
flutter: 这是一个循环: 3
flutter: 这是一个循环: 4
break和continue
break用来 跳出循环,修改前面的循环示例,代码如下:
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
if(v == 2 ){
break;
}
print(v);
}
上面的代码中,当v等于2时循环结束。所以程序输出0,1。现在我们把break改为continue
,代码如下所示:
var arr = [0, 1, 2, 3, 4, 5, 6];
for (var v in arr) {
if(v == 2 ){
// break;
continue;
}
print(v);
}
改为continue后,当v等于2时循环只是跳出本次循环,代码还会继续向下执行,所以输出的结果是0,1,3,4,5,6。
switch和case
Dart中switch/case
语句使用==操作符来比较整数、字符串或其他编译过程中的常量,从而实现分支的作用。switch/case
语句的前后操作数必须是相同类型的对象实例。每一个非空的case子句最后都必须跟上break语句。示例如下所示:
String today = 'Monday';
switch (today) {
case 'Monday':
print('星期一');
break;
case 'Tuesday':
print('星期二');
break;
}
上面这段代码也可以用if/else
语句输出相同的结果,代码输出为“星期一”。
assert
Dart语言通过使用 assert语句 来中断正常的执行流程,当assert判断的条件为false时发生中断。assert判断的条件是任何可以转化为boolean类型的对象,即使是函数也可以。如果assert的判断为true,则继续执行下面的语句;反之则会抛出一个断言错误异常AssertionError
。代码如下所示:
// 确定变量的值不为null
assert(text != null);
评论前必须登录!
注册