第五章 語句
懸垂else
指當if分支躲雨else分支時,如何為else尋找與之匹配的if分支的問題:
- C++規定,else與離它最近的尚未匹配的if匹配,從而消除了二義性。
switch
switch (ch) { case 'a': case 'b': ++n; break;}
break跳出switch控制流程。
case標籤(case lable)必須是整型常量運算式。
如果某個case標籤匹配成功,將從該標籤開始往後順序執行所有分支,除非顯示的中斷這一過程,否則直到switch的結尾處才會停下來。
case標籤後的語句加花括弧({ }),將變數定義在塊內,從而保證後面所有的case標籤都在變數的範圍外。
default標籤:一種特殊的case標籤,switch與所有case都無法匹配時,執行default標籤下的內容。
do while
do statementwhile (condition); //注意分號
不允許在迴圈條件內定義變數。
且條件部分的變數必須定義在迴圈體外。
跳躍陳述式
try語句塊和異常處理
try { //program-statements} catch (/*exception-declaration異常聲明*/) { //handler-statements} catch (/*exception-declaration*/) { //handler-statements} //...
標準異常
C++標準庫定義了一組類,用於報告標準庫函數遇到的問題。
在以下4個標頭檔中:
- exception:定義了最通用的異常類exception,只報告異常的發生,不提供任何額外資訊。
- stdexcept
- 使用string對象或C風格的字串初始化
- 只有一個成員函數what()
exception //最常見的問題
runtime_error //只有在運行時才能檢測出的問題
overflow_error //
underflow_error
logic_error
domain_error
invalid_arguement
length_error
out_og_range
- new:bad_alloc
- type_info:bad_cast
參考:C++Primer第五版
相關文章:
第四章C++:運算式概念-運算子的應用
第六章C++:函數基礎與應用