官术网_书友最值得收藏!

4.3 代碼塊

在前面的if語句示例中,if和else之后僅跟隨了一個System.Console.WriteLine();語句,如代碼清單4.23所示。

代碼清單4.23 不需要代碼塊的if語句

可用大括號將多個語句合并成代碼塊,以實現在符合條件時執行多個語句。例如代碼清單4.24中突出顯示的用于計算半徑的代碼塊。

代碼清單4.24 跟隨了代碼塊的if語句

輸出4.14展示了結果。

輸出4.14

在這個例子中,if語句檢查radius(半徑)是不是正數。如果是,就計算并顯示圓的面積;否則顯示消息指出半徑無效。

注意第一個if之后跟隨了兩個語句,它們被封閉在一對大括號中。大括號將多個語句合并成代碼塊

如去掉代碼清單4.24中用于創建代碼塊的大括號,在布爾表達式返回true的前提下,只有緊接在if語句之后的那條語句才會執行。無論布爾表達式求值結果是什么,后續的語句都會執行。代碼清單4.25展示了這種無效的代碼。

代碼清單4.25 依賴縮進造成無效的代碼

在C#中,縮進僅用來增強代碼的可讀性。編譯器會忽略它,所以上述代碼在語義上等價于代碼清單4.26。

代碼清單4.26 使用大括號的if語句

程序員必須防止此類不容易發現的錯誤。一種比較極端的做法是,無論如何都在控制流程語句之后包括代碼塊,即使其中只有一個語句。事實上,設計規范是除非是最簡單的單行if語句,否則避免省略大括號。

雖然比較少見,但也可獨立使用代碼塊,它在語義上不屬于任何控制流程語句。換言之,大括號可自成一體(例如沒有條件或循環),這完全合法。

上述兩個代碼清單的π值用System.Math類的PI常量表示。編程時不要硬編碼π和e(自然對數的底),請用System.Math.PI或System.Math.E。

設計規范

·除非使用最簡單的單行if語句,否則避免省略大括號

主站蜘蛛池模板: 阳东县| 凉山| 定结县| 土默特右旗| 汾阳市| 泗水县| 忻城县| 仁布县| 宜宾县| 遵义县| 平利县| 芦山县| 南安市| 饶河县| 宕昌县| 泾阳县| 夹江县| 博白县| 南漳县| 诏安县| 嘉峪关市| 河南省| 澳门| 长顺县| 错那县| 辽阳市| 满洲里市| 青川县| 延长县| 馆陶县| 潢川县| 皋兰县| 洪泽县| 会同县| 玛沁县| 石景山区| 会昌县| 六盘水市| 西乌| 收藏| 泽州县|