通過前面的基礎知識瞭解學習,咱們今天能夠進入語句模塊啦。python
dart主要有如下流程控制語句:學習
(一)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:
--enable-asserts
.In production code, assertions are ignored, and the arguments to assert
aren’t evaluated.