一、異常捕獲
異常是指在程序運行時發生的錯誤 。即可以編譯通過,代碼沒有語法錯誤,但是運行的時候可能會發生的錯誤。舉個例子,當你向控制台輸入一個數字,然后通過Convert.ToInt32將獲取到的字符串轉換成int類型的數時,如果你傳入的不是一個數字,而是一個字母,這個時候就會出現“輸入字符串格式不正確的”錯誤,如下圖所示:
在圖中可以看到發生錯誤后會彈出個錯誤提示框,但是這樣特別影響軟件的執行效率以及對用戶非常的不友好,因此我們就得學會如何來處理這些異常。
我們可以用try...catch...語句來處理簡單的異常,語法格式如下:
try { 代碼(可能會出現錯誤的代碼) } catch { 代碼 (出現錯誤后,你想怎么處理它們) }
將上面出現異常的代碼用try..catch..修改后,代碼如下:
class Program { static void Main(string[] args) { Console.WriteLine("請輸入一個數字:"); try { int num = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(num); } catch { Console.WriteLine("對不起,只能輸入一個數字"); } Console.ReadKey(); } }
效果如下:
二、switch-case語句
switch-case語句其實和if-else if的差不多的意思,用來處理多種情況的語句。語法格式如下:
switch(變量或表達式的值) { case 值1:要執行的代碼; break; case 值2:要執行的代碼; break; ... default:要執行的代碼; break; }
這里的 break 語句作用就是跳出當前的switch-case語句,因為已經跳出了,所以不會再往下繼續執行switch-case里面的代碼了。break也可以跳出當前的循環語句 ,下面開始講循環結構。
三、while語句
while語句是一個循環語句,語法結構如下:
while(條件語句) { 代碼; /*條件語句會返回bool值,如果條件語句一直為true,那么就不停地執行里面 的代碼,如果為false,則不再執行里面的代碼。*/ }
四、for循環語句
for語句也是循環語句,結構如下:
for(表達式1;表達式2;表達式3) { 循環體; } /* 表達式1一般為聲明循環變量,記錄循環的次數(int i=0;) 表達式2一般為循環條件(i<10) 表達式3一般為改變循環條件的代碼,使循環條件終有一天不再成立(i++)。 執行過程:程序首先執行表達式1,聲明了一個循環變量用來記錄循環的次數, 然后執行表達式2,判斷循環條件是否成立,如果表達式2返回的結果為true, 則執行循環體。當執行完循環體后,執行表達式3,然后執行表達式2繼續判斷循環條件是否成立, 如果成立則繼續執行循環體,如果不成立,則跳出for循環。 */
五、continue與break
break:跳出當前循環,並且不再執行循環。
continue:跳過此次循環,然后繼續下次循環。
六、三元表達式
三元表達式和if-else語句用意相似,都是處理兩種情況的判斷語句。如下所示:
bool 變量 = 表達式1?值1:值2;
執行過程: 先進行表達式1,如果表達式1為true,則將值1返回給布爾型變量;如果表達式1為false,則將值2返回給布爾型變量。是不是和if-else語句很像呢。
七、用Parse進行類型轉換
前面已經學習過如何在數據類型之間進行轉換,例如將字符串轉換成int類型可以用:Convert.ToInt32(str);現在再增加一種方法:
string str = "123"; int i = int.Parse(str);
那這兩種類型轉換的方式有什么區別嗎? 沒有區別。因為Convert.ToInt32() 其實是在內部調用了int.Parse()的方法。
八、程序調試
程序調試用來干嘛?一般來說,如果我們想深入了解一段代碼的執行過程,就可以用調試來進行。還有,如果你的程序得出的數據並不是你想要的結果,你就想看看到底是哪一步代碼出了問題,就可以用調試來解決。
調試有三種調試方式:
1、 單步調試,也叫逐句調試,也就是一句一句的調試,快捷鍵是 F11
2、逐過程調試,就是一個方法一個方法的調試,快捷鍵是 F10
3、斷點調試, 在你認為可能會開始發生錯誤的代碼標記一個斷點,然后按 F5 進行斷點調試,程序會在你設置斷點的那一行暫停下來,然后你就可以進行單步調試來進行調試。