你可以通過以下方法控制代碼流程
if和else
for循環
while和do-while循環
break和continue
switch和case
assert
你也可以使用try-catch和throw處理異常
dart支援if語句和可選的else語句,簡單的if語句可以用條件運算符( ? : ),下面是例子
你可以使用for循環進行疊代
如果對象是一個iteration對象,你可以使用foreach()方法
iteration類list和set使用for-in的形式
while循環先判斷條件再進入循環
do-while先進入循環再判斷條件
使用break停止循環
使用continue跳過本次循環
switch通常用于整數、字元串和編譯時常量的比較,比較的對象必須是同一類的執行個體,而不是任何子類型,每一個case必須用break結束。
在沒有case比對的情況下執行default的内容
下面例子中的case省略了break,是以産生了一個錯誤
然而,在case内容為空的情況下支援落空
如果你真的希望落空,你可以使用continue繼續執行
使用assert語句,如果布爾值為false就擾亂正常運作,隻在檢查模式下工作
dart會抛出并捕獲異常,異常表示一些意想不到的事情發生了,如果沒有捕獲異常,就會中斷運作或程式結束,與java不同,dart的所有異常都是未經檢查的,dart提供了exception和error類型,以及衆多預定義的子類型,你也可以自己定義異常
這是個抛出異常的例子
你還可以抛出任意對象
因為抛出異常是一個表達式,你可以用 => statements 在任何地方抛出異常
捕捉或捕獲異常阻止異常繼續運作,捕獲異常并處理
代碼可以有多個類型的異常處理,你可以指定多個異常處理,第一個catch子句處理異常對象的類型,如果catch子句沒有指定異常類型,就處理所有異常類型
看上面的代碼,你可以使用on和catch或兩者都用,使用on指定異常類型,使用catch給異常處理程式一個異常對象
確定代碼的運作,不管是否抛出異常,使用finally子句,無論是否有比對異常的catch子句,最終都執行finally子句
比對任何異常catch子句後運作finally子句