16.中斷與多分之語句的應用
中斷語句常常與循環語句配合使用,中斷語句的用途是提前中斷循環。
上面的break語句就是中斷語句,當代碼執行到break語句時,會直接跳出當前的循環執行後面的代碼,因此即使我們不對循環的判定條件進行操作,在循環過程中也很容易結束循環。
Dart中還提供了一個很常用的中斷語句:continue語句。break語句會直接跳出本層循環,執行循環後面的代碼,而continue語句則是跳過本次循環後,還會進行循環條件的判定,如果條件依然滿足,就會繼續執行循環。示例代碼如下:
//下面的循環將不會輸出任何信息 直接被跳過
for(var j=0;j<3;j++){
if(j==0){
break;
}
print(j);
}
//下面的循環的第一次循環將會被跳過 之後正常 將輸出1 2
for(var j=0;j<3;j++){
if(j==0){
continue;
}
print(j);
}
其實多分支選擇語句可以完成的工作使用if-else語句都可以完成,但是在某些場景下,使用多分支選擇語句switch-case能夠寫出更加整齊規則的代碼。在學習if-else語句時舉過一個小例子,以學生的分數來劃分學生的成績段,代碼如下:
var ar = "滿分";
switch(ar){
case "不及格":
{
print("成績在60分以下");
}
break;
case "及格":
{
print("成績在60-75分");
}
break;
case "良好":
{
print("成績在75-85分");
}
break;
case "優秀":
{
print("成績在85分以上");
}
break;
default:
{
print("輸入異常!!");
}
}
}
switch-case語句的作用是用來進行條件的匹配,switch關鍵字後面填寫要進行匹配的變量,之後列舉case語句進行匹配,如果匹配成功,就會執行對應的case代碼塊。需要額外注意,每一個case塊的結尾都需要使用break語句進行中斷,否則運行時會有異常產生。
異常處理¶
任何代碼都有產生異常的可能,程序的邏輯越複雜、代碼量越大,產生異常的可能性也越大。在編寫代碼時,我們不能強求沒有異常產生,而是要將注意力放在產生異常後的處理工作。
main() {
var a = -10;
try{
if(a<0){
throw "輸入有誤";
}
}on int{
print("捕獲了整數類型的異常");
}on String catch(exp,st){
print("捕獲了字符串類型的異常:$exp\n$st");
// rethrow;//繼續拋出異常
}finally{
print("異常處理結束");
}
print("程序完成");
}
try結構有這樣的特點,首先其後面的代碼塊中需要將可能產生異常的代碼放入,可以是幾行代碼,也可以是函數,等等。如果這些代碼在執行時拋出異常,就會將異常捕獲,並根據異常的類型將其分配入指定的處理模塊。try結構塊後面跟隨的on語句用來指定要捕獲的異常類型,例如,如果拋出的異常是字符串類型的對象,就會進入on String對應的代碼塊繼續執行代碼,這裡面我們可以根據實際情況來進行異常的處理,完成後程序會繼續向後執行。如果需要獲取具體的異常對象,就可以使用catch語句來捕獲
Last update :
13 novembre 2024
Created : 13 novembre 2024
Created : 13 novembre 2024