C#中的控制结构
? 跟以前接觸的C++一樣,C#中的控制結(jié)構(gòu)也有三種,即順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。剛剛學(xué)完,來這兒整理一下思路,加深一下印象哈。
? ? ?★ 順序結(jié)構(gòu):按照先后次序依次執(zhí)行的結(jié)構(gòu),這種結(jié)構(gòu)非常簡單,就跟下樓梯一樣一直往下走,直到程序執(zhí)行結(jié)束。在這里也沒什么多說的了。
? ? ?★ 分支結(jié)構(gòu):根據(jù)條件進(jìn)行選擇來執(zhí)行不同的語句塊。C#中分支結(jié)構(gòu)主要有三種,即(1)if語句(2)switch...case語句(3)try...catch語句【常用來捕獲程序中的異常語句】。格式如下:
? ? ?try
? ? ? {
? ? ? ?//可能出錯(cuò)的代碼
? ? ? ? 語句1; ?
? ? ? ? 語句2; ? ?
? ? ? ? 語句3; ? ?
? ? ? ?}
? ? ?catch
? ? ? ?{
? ? ? ? ?語句塊
? ? ? ? }
注意:如果try中的代碼沒有出現(xiàn)異常,則不會(huì)執(zhí)行catch中的代碼;如果try中出現(xiàn)了異常的代碼,那么try中出錯(cuò)代碼以后的代碼不在執(zhí)行,直接跳到catch中執(zhí)行語句塊。靈活運(yùn)用try...catch語句會(huì)讓程序簡單化。
? ? ?★ 循環(huán)結(jié)構(gòu):可以重復(fù)執(zhí)行某些語句塊。在C#中這個(gè)結(jié)構(gòu)也有三種,即
(1)for循環(huán)。循環(huán)類型:次數(shù)確定;次數(shù)不確定但由程序控制;次數(shù)不確定但由 ? 用戶控制;死循環(huán)。
(2)while循環(huán)。特點(diǎn):先判斷再執(zhí)行。也就是最少執(zhí)行零次循環(huán)體。
(3)do...while循環(huán)。特點(diǎn):先執(zhí)行再判斷。也就是最少執(zhí)行一次循環(huán)體。
下面附上一道例題:不斷要求用戶輸出一個(gè)數(shù)字(假定用戶輸入的都是正整數(shù)),當(dāng)用戶輸入end的時(shí)候得到剛才輸入的數(shù)字中最大的一個(gè)數(shù)。
C#程序如下:
? ? ? ? ? ?string input=" ";//給input賦值
? ? ? ? ? ?int max=0;
? ? ? ? ? ?int number=0;
? ? ? ? ? ?bool flag = true;
? ? ? ? ? ?do
? ? ? ? ? ?{
? ? ? ? ? ? ? ?try
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?Console.WriteLine("請輸入一個(gè)整數(shù)");
? ? ? ? ? ? ? ? ? ?input = Console.ReadLine();
? ? ? ? ? ? ? ? ? ?max = Convert.ToInt32(input);//最可能出錯(cuò)的代碼。如果轉(zhuǎn)換成功則程序繼續(xù)往下執(zhí)行,如果不成功,則程序進(jìn)入catch中
? ? ? ? ? ? ? ? ? ?if (number>max)
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?max = number;
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?catch
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?if (input!="end")//輸入的字符既不是數(shù)字也不是end
? ? ? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ? ? ?Console.WriteLine("您輸入了非法數(shù)字!");
? ? ? ? ? ? ? ? ? ? ? ?input="end";//繼續(xù)往下執(zhí)行,則while中循環(huán)條件不成立,那么結(jié)束循環(huán)
? ? ? ? ? ? ? ? ? ? ? ?flag = false;//將flag變?yōu)閒alse繼續(xù)執(zhí)行
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}while (input!="end");//如果input==end,即循環(huán)條件不成立,跳出循環(huán),執(zhí)行后面的if語句
? ? ? ? ? ?if (flag == false)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("結(jié)束程序!");
? ? ? ? ? ?}
? ? ? ? ? ?else
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("最大值為{0}", max);
? ? ? ? ? ?}
? ? ? ? ? ?Console.ReadKey();
? ? ? 每天都給自己加油!努力的成長!
轉(zhuǎn)載于:https://blog.51cto.com/broncho/1257556
總結(jié)
- 上一篇: poj 1797(最短路变形)
- 下一篇: (C#)链接本地数据SDF。