人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

C#圖文詳細教程第3課:選擇控制語句

C#圖文詳細教程第3課:選擇控制語句

更新時間:2022-06-06 文章作者:未知 信息來源:網絡 閱讀次數:

本節課將介紹如何使用C#選擇控制語句,第三課將達到如下幾個目的:
1.學會"if"語句的用法。

2.學會"switch"語句的用法。

3.學會在"switch"語句中如何使用"break"語句。

4.理解"goto"語句的正確用法。

在前面幾節課中,你所看到的程序都是順序執行的。你無法控制輸入語句,你所能做的就是跟著程序執行直到終止。本節課中,將介紹基于條件進行判斷,從而選擇進入相應的邏輯分支中去執行。

我們所介紹的第一個選擇語句是"if"語句,它有三種基本形式:單條選擇, 如果/否則,以及多情形選擇。

1.清單3-1. IF語句的格式:IfSelection.cs

using System;
class IfSelect {
public static void Main() {
string myInput;
int myInt;
Console.Write("Please enter a number: ");
myInput = Console.ReadLine();
myInt = Int32.Parse(myInput);
// Single Decision and Action with brackets
if (myInt > 0) {
Console.WriteLine("Your number {0} is greater than zero.", myInt);
}
// Single Decision and Action without brackets
if (myInt < 0)
Console.WriteLine("Your number {0} is less than zero.", myInt);
// Either/Or Decision
if (myInt != 0) {
Console.WriteLine("Your number {0} is not equal to zero.", myInt);
}
else {
Console.WriteLine("Your number {0} is equal to zero.", myInt);
}
// Multiple Case Decision
if (myInt < 0 || myInt == 0) {
Console.WriteLine("Your number {0} is less than or equal to zero.", myInt);
}
else if (myInt > 0 && myInt <= 10) {
Console.WriteLine("Your number {0} is between 1 and 10.", myInt);
}
else if (myInt > 10 && myInt <= 20) {
Console.WriteLine("Your number {0} is between 11 and 20.", myInt);
}
else if (myInt > 20 && myInt <= 30) {
Console.WriteLine("Your number {0} is between 21 and 30.", myInt);
}
else {
Console.WriteLine("Your number {0} is greater than 30.", myInt);
}
}
}

說明

1.清單3-1中的IF語句的各種格式都使用了同一個輸入變量"myInt"。

這是從用戶獲得交互內容的另一種方式。我們首先輸出一行信息:"Please enter a number:"到控制臺。"Console.ReadLine()"語句使得程序等待來自用戶的輸入,一旦用戶輸入一個數字,按回車鍵之后,該數字以字符串的形式返回到"myInput"變量中,由于我們需要的是一個整數,所以需要轉換變量"myInput"成整型數據。用命令"Int32.Parse(myInput)"即可完成。 (Int32 等數據類型將在后面的課程中加以介紹。) 轉換結果放到"myInt"變量中,這是個整數類型。

2.有了我們所需要的類型的數據,就可以用"if"語句來進行條件判斷了。

對于第一種形式的IF語句,格式為: if (boolean expression) { statements }。該語句必須以關鍵字"if"開始。之后,括號中為布爾表達式。該布爾表達式必須計算出一個true或者false值。在本例中,我們檢查用戶的輸入,看看輸入值是否大于0,如果表達式運算結果為true,就執行大括號中的語句。(我們把大括號之間的語句部分稱為"block"。) 塊中有一個或者多個語句。如果布爾表達式的值為false,我們就忽略塊中的語句,直接執行塊后面的語句。

3.除了沒有塊之外,第二種"if"語句的格式非常類似于第一種。

因此,如果布爾表達式為true,將會執行布爾表達式之后的第一條語句。當布爾表達式的值為false,布爾表達式之后的第一條語句將被忽略掉,而直接執行其后的程序語句。如果你只有一條語句需要執行,就用該格式的"if"語句。如果你打算在布爾表達式的值為true時,執行兩條或者兩條以上的語句,就必須把它們放到塊中。我個人的建議是:無論需要執行幾條語句,要養成把if語句放到塊中的習慣, 這就使得你避免犯如下錯誤:當添加了一條語句之后,忘記了添加一對括號。

4.大多數時候,你需要作出如下選擇:當條件滿足時做一件事,否則做另外一件事。

清單3-1中,程序演示了這種if語句格式的用法。 當布爾表達式為true時, 就立刻執行"if"后面的那條語句, 而當布爾表達式為false時,就執行"else"關鍵字后面的語句。

5.當要計算多個布爾表達式時,你可以使用if/else if/else 這種格式,上面的例子程序演示了這種形式,從關鍵字"if"開始, 一旦布爾表達式為真,就執行if后面的塊。但是,這一次,在組合關鍵字"else if"后面還可以進行多個條件的判斷。"else if"語句后面也有個布爾表達式,一旦該布爾表達式的值為true,就會執行緊接其后的塊。這種情形可以一直持續下去,直到所有的情況都已經計算出來,但是整個"if/else if"序列必須以"else"結束。當所有的"if"或者"else if" 后面的布爾表達式的值都為false時,就執行關鍵字"else"后面的塊。 對于if/else if/else格式的語句,每次僅僅執行一個其中部分的語句 。

6.上面的例子中,布爾表達式 (myInt < 0 || myInt == 0)包含了條件OR (||)運算符。

對于常規OR (|)運算符和條件OR (||)運算符來說,只要有運算符兩邊的子表達式之一為真,整個布爾表達式的值就為真。兩個運算符的區別在于:正規OR 運算符(|)每次都對運算符(|)兩邊的表達式進行計算。而條件運算符OR (||)只有當第一個子表達式的值為false時,才計算第二個子表達式的值。

7.布爾表達式 (myInt > 0 && myInt <= 10)包含了條件運算符AND。

對于常規AND (&) 運算符和條件AND (&&)運算符來說,只有當運算符兩邊的子表達式的值都為真時,整個布爾表達式的值為真。兩種運算符的區別在于:正規AND (&)運算符每次都計算運算符兩邊的子表達式的值,但是對于條件AND運算符來說,只有當第一個子表達式的值為真時,才計算第二個表達式的值。條件運算符(&& 和 ||) 通常稱為運算優化的運算符,因為有時不需要計算整個表達式的值。這樣就可以忽略掉不必要的邏輯表達式的計算,可以生成有效的代碼。

同if/else if/else 格式的"if"語句類似,"switch"語句的用法如下:

2.清單3-2. 分支選擇語句: SwitchSelection.cs

using System;
class SwitchSelect {
public static void Main() {
string myInput;
int myInt;

begin:
Console.Write("Please enter a number between 1 and 3: ");
myInput = Console.ReadLine();
myInt = Int32.Parse(myInput);
// switch with integer type
switch (myInt) {
case 1:
Console.WriteLine("Your number is {0}.", myInt);
break;
case 2:
Console.WriteLine("Your number is {0}.", myInt);
break;
case 3:
Console.WriteLine("Your number is {0}.", myInt);
break;
default:
Console.WriteLine("Your number {0} is not between 1 and 3.", myInt);
}

decide:
Console.Write("Type \"continue\" to go on or \"quit\" to stop: ");
myInput = Console.ReadLine();
// switch with string type
switch (myInput) {
case "continue":
goto begin;
case "quit":
Console.WriteLine("Bye.");
break;
default:
Console.WriteLine("Your input {0} is incorrect.", myInput);
goto decide;
}
}
}

說明

1.清單3-2 演示了多分支選擇語句switch的用法。

關鍵字"switch"后面是switch 表達式。Switch表達式必須是以下類型中的一種: sbyte,byte,short,ushort, int,uint,long,ulong,char,string,或者enum類型。(enum類型將在后面的課程中加以介紹)。在清單3-2的第一個"switch"語句中, switch 表達式計算的是整數類型的數據。

2.在switch表達式后面是個switch 塊, 當Switch表達式的值同某一個case后面的常量表達式的值相匹配時,就執行此case后面的語句,直到遇到"break"語句或者"goto"語句為止。每個分支以關鍵字"case"作為標號,其后為常量表達式,然后是分號(:)。本例子程序中,我們有"case 1:","case 2:"和"case 3:"。

3.你可以在所有的分支選擇的后面加上一個"default"分支。

如果沒有匹配的常量表達式,就進入default分支,并執行該分支的語句。雖然default標號是可選的,我建議你加上該分支。這將有助于處理一些意外事件 ,使得你的程序能夠捕捉和處理不可預見的事件,從而使得程序更加可靠。

4.每個"case"標號必須以"break"語句作為結束。

"break"語句將使得程序退出switch語句,并從switch塊后面的一條語句開始執行。對于"default"標號來說,"break"語句是可選的,因為有"break"語句和沒有"break"語句,其運行結果是一樣的。如果你在switch塊中放置了一個"goto"語句,情況就不一樣了。

5.清單3-2中的第二個"switch"語句演示了"goto"語句的用法。

"goto"語句可以讓程序跳到關鍵字"goto"后面的標號中去執行。程序執行過程中,如果用戶打入"continue", switch語句就匹配case "continue" 中的常量表達式,并執行"goto begin:"語句。程序就會離開"switch"語句,開始執行標號"begin:"后的第一條語句。這是個有效的循環,可以讓你多次重復執行同樣一段代碼。一旦用戶打入字符串"quit",循環將會結束。此時,將進入case "quit" 分支。該分支將輸出信息"Bye."到控制臺上,之后跳出switch語句,再結束程序。

一旦輸入的字符串既不是"continue"也不是"quit",就會進入"default:"分支。于是,將會輸出一個出錯信息到控制臺上,之后執行"goto decide:"命令。這就使得程序轉跳到"decide:" 標號后面的第一條語句, 該語句執行后,將會詢問用戶是否愿意continue(繼續)還是 quit(退出)。這是個有效的循環。

顯然,"goto"語句功能強大,在受控的場合下,"goto"語句是很有用途的。但是,必須指出的是,"goto"如果出現被濫用的趨勢,程序的調試和維護將會變得很困難。想象一下,如果程序到處可見goto語句,其流程將會變得難以閱讀和理解。下節課中,將介紹在程序中創建循環語句的更好方法。

小結
現在,你已經了解了如何使用"if"語句的各種格式,也了解了如何使用"switch"語句。你也了解了使用"break"語句可以從"switch"語句中推出。最后,你也了解了如何使用"goto"語句跳到程序的另外一

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 河西区| 金阳县| 兴安县| 凌源市| 渑池县| 宝清县| 林西县| 兰坪| 江城| 南和县| 东山县| 拉萨市| 太康县| 曲水县| 玉溪市| 东至县| 电白县| 湾仔区| 抚顺县| 桑日县| 百色市| 随州市| 大城县| 金湖县| 嘉禾县| 罗甸县| 子长县| 宜兰县| 北辰区| 新营市| 房产| 道真| 乌兰浩特市| 武义县| 兴安盟| 比如县| 巴林右旗| 道真| 巩义市| 梅河口市| 辽中县|