Dart 流程控制语句

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);
赞(0)

评论 抢沙发

评论前必须登录!