文章目錄
- 第5章 語句
- 5.1 簡單語句
- 5.2 語句作用域
- 5.3 條件語句
- 5.3.2 switch語句
- 5.4 迭代語句
- 5.4.1 while
- 5.4.2 for
- 5.4.3 范圍for循環
- 5.4.4 do while語句
- 5.5 轉跳語句
- 5.5.1 break語句
- 5.5.2 continue語句
- 5.5.3 goto語句
- 5.6 try語句塊和異常處理
- 5.6.1 throw表達式
- 5.6.2 try語句塊
- 5.6.3 標準異常
- 小結
- 術語表
成都創新互聯網站建設公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發展,成交一個客戶多一個朋友!專注中小微企業官網定制,成都網站設計、網站建設,塑造企業網絡形象打造互聯網企業效應。第5章 語句
- 條件執行語句、循環語句(重復執行相同代碼)、轉跳語句(中斷當前控制流)
- 順序執行;控制流語句
5.1 簡單語句
- 表達式語句:表達式末尾加上分號,作用 執行表達式并丟棄求值結果
- 空語句:只有一個單獨的分號,使用時應加上注釋,分號別漏寫也別多寫
- 復合語句/塊:用花括號括起來的語句和聲明的序列,(復合語句)一個塊就是一個作用域;語法上需要一條語句,但是邏輯上需要多條語句
5.2 語句作用域
- 定義在控制結構當中的變量只在相應語句的內部可見,一旦語句結束變量就超出其作用范圍。
5.3 條件語句
5.3.1 if語句
- 判斷一個指令的條件是否為真,根據判斷結果決定是否執行另外一條語句
- if else
if (condition) statement else statement2
- 嵌套if語句,在if或者else后加上花括號可以避免代碼混亂不清
- 懸垂else
else
與離它最近尚未匹配的if
匹配 - 使用花括號控制執行路徑
5.3.2 switch語句
-在若干固定選項中做出選擇,先對switch括號里的表達式求值,若與某個case標簽匹配成功,程序從該標簽之后的第一條語句開始執行,直到到達了switch的結尾或者是遇到一條break語句為止。
- switch內部的控制流
- 漏寫break容易引發缺陷
- default 沒有一個case標簽能匹配上時,將執行default標簽后的語句;標簽后面必須跟語句或者標簽
- switch內部的變量定義
- 在某處一個帶有初值的變量位于作用域之外,在另一處該變量位于作用域之內,則從前一處跳轉到后一處的行為是非法的
5.4 迭代語句
5.4.1 while
- 只要括號內的條件為真就重復的執行循環體(當不清楚需迭代次數時;或者需要在循環結束后訪問循環控制變量用while比較合適)
5.4.2 for
for(init-statement;condition;expression){statement}
- 傳統for循環的執行流程
- init-statement初始化一個值,值隨著循環的進行而改變
- condition為真則執行一次 statement,然后執行 expression
- condition為假則一次也不執行
- for 語句頭中的多重定義
- init-statement可以定義多個對象,但只能有一條聲明語句因此變量基礎類型必須相同
- 省略for循環語句頭的某些部分
- 可以省略init-statement;condition;expression中的任何一個或者全部
5.4.3 范圍for循環
for(declaration:expression)
- declaration 確保類型相容最簡單的方法是使用auto類型說明符
- 倘若需要修改expression的值,需要將declaration聲明成引用
5.4.4 do while語句
5.5 轉跳語句
- 中斷當前的執行過程:break/continue/goto/return
5.5.1 break語句
- 負責終止離它最近的while/do while/for/switch語句
5.5.2 continue語句
5.5.3 goto語句
- 從goto語句無條件轉跳到同一函數內的另一條語句
goto label;... label:..;
label是用于標識一條語句的標識符,可以和其他實體同名- 帶標簽語句
label:
一個標識符帶一個冒號
5.6 try語句塊和異常處理
- 異常:存在于運行時的反常行為
- throw:表示遇到了無法處理的問題,引發了異常
- try: try中拋出的異常會被某個catch(異常處理代碼)子句處理
- 一套異常類:用于在throw和catch之間傳遞異常具體信息
5.6.1 throw表達式
- 包含關鍵字throw和緊隨其后的一個表達式(表達式類型就是異常類型)
5.6.2 try語句塊
- try塊后跟一個或多個catch子句
- catch子句包括:
- 關鍵字catch
- 括號內對象的聲明(異常聲明)
- 一個塊
- 編寫處理代碼
- 函數在尋找處理代碼的過程中退出
- 尋找處理代碼的過程與函數調用鏈剛好相反(從內向外找),若最終沒找到匹配的catch語句則程序轉到名為terminate的標準庫函數將導致程序非正常退出
- 清楚異常何時發生,發生后應如何確保對象有效、資源無泄漏、程序處于合理狀態等
5.6.3 標準異常
- exception頭文件:最通用異常類exception(只報告異常的發生,不提供任何額外信息
- stdexcept頭文件:幾種常用異常類
- 定義了幾種運算:創建或拷貝異常類型的對象;為異常類型對象賦值
- new頭文件:bad_alloc異常類型
- type_info頭文件:bad_cast
- 只能以默認初始化的方式初始化exception/bad_alloc/bad_cast,不允許為這些對象提供初始值,其他異常類型則相反當創建對象時必須提供初始值
- what函數返回C風格字符串內容與異常對象的類型有關,若異常類型有一個字符串初始值,則返回該字符串;無初始值異常類型返回內容由編譯器決定
小結
- c++提供的語句大多會影響程序控制流程
- 迭代操作:while/for/do while
- 條件分支:if/switch
- continue:終止循環當前次迭代
- break:退出循環或switch語句
- goto:將控制權轉移到標簽語句
- try catch:try可能拋出異常語句塊,catch處理代碼拋出異常
- throw:將控制權轉移到相關的catch子句
- return:終止函數執行
術語表
- 懸垂else else與前一個未匹配的if匹配在一起
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前標題:c++primer第5章語句-創新互聯
網頁鏈接:http://vcdvsql.cn/article22/iegcc.html
成都網站建設公司_創新互聯,為您提供App設計、網站設計公司、搜索引擎優化、全網營銷推廣、App開發、品牌網站建設
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯