[dart學習]第六篇:流程控制語句

通過前面的基礎知識瞭解學習,咱們今天能夠進入語句模塊啦。python

dart主要有如下流程控制語句:學習

  • if-else
  • for循環
  • while和do-while循環
  • break和continue
  • switch-case
  • assert
  • 固然,你還能夠使用 try-catch或throw

(一)if-elselua

dart的if(或者else if)的條件表達式必須爲bool表達式,不能使用其餘類型。dart的if-else用法與C語言相似,再也不細述。spa

int a = 6;
if(a<0)
{
    print("aaa");
}
else if((a>=0) && (a<=3))
{
    print("bbb");
}
else
{
    print("ccc");
}

(二) for循環debug

與C語言系的for循環用法相同,再也不細述。補充一點:對於List和Set等可迭代類型,也能夠使用for-in格式去迭代(有點像python),看個例子:code

var collection = [0, 1, 2];
for (var x in collection) {
  print(x); // 0 1 2
}

就是這樣。server

(三) while和do-whileblog

這兩個也再也不細述了,和C語言同樣。(while循環是先判條件再執行動做;do-while是先執行動做再判循環條件)。get

(四)break和continueit

與C語言同樣,break是跳出當前循環,continue是跳過當次循環的剩餘語句,繼續開始新一次的循環。

(五)switch-case

與C語言相似,再也不細述。一點特例,dart在switch-case裏支持continue:

var command = 'CLOSED';
switch (command) {
  case 'CLOSED':
    executeClosed();
    continue nowClosed;
  // Continues executing at the nowClosed label.

  nowClosed:
  case 'NOW_CLOSED':
    // Runs for both CLOSED and NOW_CLOSED.
    executeNowClosed();
    break;
}

(六)assert

若是布爾條件爲false,則會中斷執行。assert語句是有兩個參數的

 assert(condition, optionalMessage);     //第二個參數是可選的

第一個參數能夠是返回值爲bool的表達式,若是表達式的返回值爲true,則assert經過且程序繼續正常執行; 若是表達式爲false,則assertion失敗且拋出一個異常。

再貼一段官方的註釋,講了assert能有效工做的場景,你們自行閱讀吧

When exactly do assertions work? That depends on the tools and framework you’re using:

  • Flutter enables assertions in debug mode.
  • Development-only tools such as dartdevc typically enable assertions by default.
  • Some tools, such as dart and dart2js, support assertions through a command-line flag: --enable-asserts.

In production code, assertions are ignored, and the arguments to assert aren’t evaluated.

相關文章
相關標籤/搜索