C 教程第三課 選擇控制語句

2021-04-13 22:13:10 字數 3801 閱讀 4304

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

對於第一種形式的if語句,格式為: if (boolean expression) 。該語句必須以關鍵字"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 .", myint);

break;

case 2:

console.writeline("your number is .", myint);

break;

case 3:

console.writeline("your number is .", myint);

break;

default:

console.writeline("your number 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) 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"語句跳到程式的另外乙個部分。

本文**

第三課 選擇排序

quote 筆記 選擇排序 quote b 1.選擇排序類 b package com.flysnow.chap03 選擇排序 author 飛雪無情 since 2010 3 25 public class arraysel 插入元素 param value public void insert ...

第三課 選擇結構

第三課 選擇結構 一 掌握if 如果 選擇 分支 結構 1.掌握基本if if 條件 2.掌握if else 互斥 if 條件 else 3.掌握多重if if 條件1 else if 條件2 else 注意事項 1.自上而下執行條件判斷,只要有乙個條件滿足 剩下的條件不再執行 2.可以結合n個el...

python第三課答案 python第三課

字串操作 s alexwusir s1 s.capitalize 首字母大寫 print s1 全大寫,全小寫 s2 s.upper s21 s.lower print s2,s21 大小寫翻轉 s3 s.swapcase print s3 每個隔開 特殊字元或數字 的單詞首字母大寫 s alex ...