Dart 知识点 - 流程控制语句

2022-09-19 16:58:17 浏览数 (2)

写代码讲究的就是思路,这不,流程控制得要明明白白~

if else

学过前端的读者,这个很清晰了吧,你业务页面上是不是用过数不清的 if else。语法应该了然于胸了~

代码语言:javascript复制
bool isPass = true;
if(isPass) {
  print('Success'); // Success
} else {
  print('Failure');
}
复制代码

for 循环

标准的 for 循环:

代码语言:javascript复制
for(int i = 0; i < 3; i  ) {
  print("i => ${ i }");
}
// i => 0
// i => 1
// i => 2
复制代码

我们还可以使用 forEachfor in

代码语言:javascript复制
['Hello', 'World'].forEach((item) => print(item));
// Hello
// World

for(var item in ['Hello', 'World']) {
  print(item);
}
// Hello
// World
复制代码

while 和 do while

while 会在执行循环体之前先判断条件;而 do while先执行一遍循环体,再判断条件。两者的区别如上所述。

代码语言:javascript复制
// while
bool isPass = true;
while(!isPass) {
  print('Faulure');
  isPass = true;
}
// 不会执行 print

// do while
int a = 1;
do {
  print('Success');
  a  = 1;
} while(a == 1);
// 执行一次 print
复制代码

break 和 continue

breakcontinue 都是用来跳出循环。但是,break 是用来跳出整个循环,而 continue跳出当前循环。

代码语言:javascript复制
// break
for(int i = 0; i < 3; i  ) {
  if(i == 1) {
    break;
  } else {
    print("i => ${ i }");
  }
}
// i => 0

// continue
for(int i = 0; i < 3; i  ) {
  if(i == 1) {
    continue;
  } else {
    print("i => ${ i }");
  }
}
// i => 0
// i => 2
复制代码

switch 和 case

switch / case 语句前后操作必须是相同类型的对象实例。每一个非空的 case 子句后面都必须跟上 break 语句。

代码语言:javascript复制
int a = 1;
switch(a) {
  case 1: print('One'); break;
  case 2: print('Two'); break;
  default: print('Other'); break; // 不匹配情况自动走这里
}
// One
复制代码

assert 断言

断言目的是为了表示与验证软件开发者预期的结果 -- 当程序执行到断言的位置时,对应的断言应该为真。若断言为假,程序会中止执行,并给出错误信息。

代码语言:javascript复制
bool flag = true;
assert(flag == true);

assert(flag == false);
// Uncaught Error: Assertion failed
复制代码

assert 可以用来打断点,调试程序

0 人点赞