- PEVR虛擬現實編輯平臺設計與實現精析
- 浙江優創信息技術有限公司
- 1609字
- 2024-08-01 15:58:34
2.1.1 條件語句
當程序中需要進行兩個或兩個以上的選擇時,可以根據條件判斷來選擇將要執行的一組語句,C#提供的選擇語句有if語句和switch語句。
2.1.1.1 if語句
if語句是最常用的選擇語句,它根據布爾表達式的值來判斷是否執行后面的內嵌語句格式,其形式為

當布爾表達式的值為真,則執行if后面的內嵌語句embedded-statement;當布爾表達式的值為假,則程序繼續執行。如果有else語句,則執行else后面的內嵌語句,否則繼續執行下一條語句。
例如下面的例子用來對一個浮點數x進行四舍五入,結果保存到一個整數i中:

如果if或else之后的嵌套語句只包含一條執行語句,則嵌套部分的大括號可以省略;如果包含了兩條以上的執行語句,對嵌套部分一定要加上大括號;如果程序的邏輯判斷關系比較復雜,通常會采用條件判斷嵌套語句,if語句可以嵌套使用,即在判斷之中又有判斷,具體形式如下:

此時應該注意每一條else與離它最近且沒有其他else與之對應的if相搭配,比如有下面一條語句:

它實際上應該等價于下面的寫法:

注意C#的if語句與C、C++不同,即if后的邏輯表達式必須是布爾類型的。
請看一個判斷是否往應用程序傳送參數的例子:
程序清單 2-1:

其中args.Length==0是一個布爾表達式,但是C或者C++程序員可能會習慣編寫像這樣的代碼:

這在C#中是不允許的,因為if語句僅允許布爾類型的結果,而字符串的Length屬性對象返回一個整型(integer),編譯器將報告錯誤信息。
2.1.1.2 switch語句
if語句每次判斷只能實現兩條分支,如果要實現多種選擇的功能,那么可以采用switch語句。switch語句根據一個控制表達式的值選擇一個內嵌語句分支來執行。它的一般格式為

switch語句的控制類型,即其中控制表達式(controlling-expression)的數據類型可以是sbyte、byte、short、ushort、uint、long、ulong、char、string或枚舉類型(enum-type)。每個case標簽中的常量表達式(constant-expression)必須屬于或能隱式轉換成控制類型,如果有兩個或兩個以上case標簽中的常量表達式值相同,編譯時將會報錯。switch語句中最多只能有一個default標簽。我們舉一個例子來說明switch語句是如何實現程序的多路分支的:假設考查課的成績按優秀、良好、中等、及格和不及格分為五等,分別用4、3、2、1、0來表示,但實際的考卷為百分制,對應的分數分別為90~100、80~89、70~79、60~69、60分以下。下面的程序將考卷成績x轉換為考查課成績y,代碼如下:


下面的例子判斷傳遞給應用程序的參數的有無及位數:
程序清單 2-2:

使用switch語句時需注意以下兩點:
1.不準遍歷
C和C++語言允許switch語句中case標簽后不出現break語句,但C#不允許這樣,它要求每個標簽項后使用break語句或跳轉語句goto,即不允許從一個case自動遍歷到其他case,否則編譯時將報錯。
一個程序用于計算一年中已度過的天數,month表示月份,day表示日期,計算結果保存在total中。為簡便起見把閏年的情況排除在外,C和C++程序員會利用一點技巧來實現這個程序:


然而這種寫法在C#中是不允許的。很難保證任何人在編程時都不會忘記在case后加上break語句,這時往往會造成一些不易察覺的錯誤,所以在C#中如果標簽項沒有出現break語句或跳轉語句goto,編譯器將會要求程序員加上。
如果想像C、C++那樣,執行完后繼續遍歷其他的語句,那也不難,只需要明確地加入這兩條跳轉語句即可:
? goto case label:跳至標簽語句執行
? goto default:跳至default標簽執行
那樣上面的程序可以改寫為

在避免了C、C++中常出現的由于漏寫break而造成的錯誤的同時不準遍歷的原則,還使得我們可以任意排列switch語句中的case項而不會影響switch語句的功能。另外,一般說來每個switch項都以break、goto、case或goto、default結束,但實際上任何一種不導致遍歷的結構都是允許的,例如throw和return語句同樣可以跳出控制之外,因而下例是正確的:

2.把字符串當成常量表達式
VB的程序員可能已經習慣把字符串當成常量表達式來使用,但C和C++卻不支持這一點,C#的switch語句與C、C++的另一個不同點是:C#可以把字符串當成常量表達式來使用,所以switch語句的控制類型可以是string類型。
下面的例子實現浮動窗口提示。在Windows操作系統中,把鼠標移到某一個控件上停留幾秒,將會出現一個浮動提示,說明該控件的作用。例子中的GetButtonCaption用于獲得按鈕上的文字,ShowMessage表示在浮動提示窗口中顯示信息:

- Photoshop CS6 互聯網應用設計教程
- Photoshop后期強:數碼攝影后期完全寶典
- Adobe Photoshop 網頁設計與制作標準實訓教程(CS5修訂版)
- Learning Facebook Application Development
- 中文版Photoshop 2020基礎教程
- Oracle Siebel CRM 8 User Management: LITE
- 新編AutoCAD制圖快捷命令速查一冊通
- CorelDRAW X6核心應用案例教程(全彩慕課版)
- Word-Excel-PowerPoint 2010三合一辦公應用實戰從入門到精通(超值版)
- 中文版Illustrator 2020基礎教程
- 詳解AutoCAD 2022室內設計(第6版)
- Instant Flask Web Development
- Apache CXF Web Service Development
- 用Studio One輕松制作你的短視頻音樂
- .NET 4.0 Generics