第五章 摘錄

5.1 簡單語句

;? //空語句

類似python中的pass。在循環(huán)中有時(shí)就會(huì)用到。

別漏寫分號(hào),也別多寫。一般來說多余的空語句是無害的,但是如果在if或者while條件后跟了一個(gè)額外的分號(hào)就可能改變程序員的初中部。

復(fù)合語句也被稱作塊,指用花括號(hào)擴(kuò)起來的(可能為空的)語句和聲明的序列。一個(gè)塊就是一個(gè)作用域。如while或for循環(huán)的循環(huán)體必須是一條語句,{ }就是把可能的多條語句轉(zhuǎn)變成一條復(fù)合語句(塊)。

塊也可為空,指內(nèi)部沒有任何語句的一對(duì)花括號(hào)。其作用等價(jià)于空語句。

5.2 語句作用域

5.3 條件語句

懸垂else:c++規(guī)定else與它最近的尚未匹配的if匹配。

switch的case必須為整型常量表達(dá)式。并且case如果匹配成功,將從該標(biāo)簽開始往后順序執(zhí)行所有case分支,除非程序顯式中斷這一過程。

例子:?

switch (ch)

{

? ? case 'a': case 'e': case 'i': case 'o': case 'u':? //只要是aeiou中任意一個(gè)都會(huì)執(zhí)行

? ? ? ? ? ? ? ? ++vowelCnt;

? ? ? ? ? ? ? ? break;

}

一般來說不要省略case分支最后的break語句。

即使不準(zhǔn)備在default標(biāo)簽下做任何工作,定義一個(gè)default標(biāo)簽也是有用的。目的在于告訴讀者我們已經(jīng)考慮到了默認(rèn)的情況。

對(duì)于switch內(nèi)部的變量定義部分,很有趣。

參考:https://blog.csdn.net/neuwyt/article/details/48968039

https://www.zhihu.com/question/23051685

另外,變量的聲明與定義不是語句?。?!

重點(diǎn)是:

初始化操作和定義變量對(duì)于編譯器來說是兩回事,

初始化操作是一個(gè)確確實(shí)實(shí)在運(yùn)行時(shí)才會(huì)被調(diào)用的語句,是可以被case跳轉(zhuǎn)屏蔽掉的語句;而定義是在編譯時(shí)期就完成檢查的。

------------

疑惑點(diǎn):

switch(index){ case 1: int ix = 2; break; default: int ix = 3; break; }

為何這個(gè)報(bào)錯(cuò)?上述代碼不存在定義,每次執(zhí)行必然進(jìn)入不同的case,ix只可能被初始化一次,仍然報(bào)錯(cuò) error: redefinition of 'ix'

5.4 迭代語句

5.5 跳轉(zhuǎn)語句

goto語句作用是從goto語句無條件跳轉(zhuǎn)到同一函數(shù)內(nèi)的另一條語句。

不要在程序中使用goto語句,因?yàn)樗沟贸绦蚣入y理解又難修改。

5.6 try語句塊和異常處理

異常處理機(jī)制為程序中異常檢測(cè)異常處理這兩部分的協(xié)作提供支持。

throw表達(dá)式,異常檢測(cè)部分使用throw表達(dá)式來表達(dá)它遇到了無法處理的問題,我們說throw引發(fā)了異常。

try語句塊,異常處理部分使用try語句塊。以關(guān)鍵字try開始,并以一個(gè)或多個(gè)catch子句結(jié)束。因?yàn)閏atch子句處理異常,所以也被稱作異常處理代碼。

一套異常類,用于在throw和catch之間傳遞異常的具體信息。

編寫異常安全的代碼非常困難,異常中斷了程序的正常流程。那些在異常發(fā)生期間正確執(zhí)行了“清理”工作的程序被稱作異常安全的代碼。然而經(jīng)驗(yàn)表明,編寫異常安全的代碼非常困難。對(duì)于一些程序來說,當(dāng)異常發(fā)生時(shí)只是簡單終止程序,此時(shí)則不需要怎么擔(dān)心異常安全。在google style guide里指明了不使用異常。

標(biāo)準(zhǔn)異常庫<stdexcept>。

https://www.cnblogs.com/ronny/p/3656559.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 特別說明,為便于查閱,文章轉(zhuǎn)自https://github.com/getify/You-Dont-Know-JS...
    殺破狼real閱讀 525評(píng)論 0 0
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,557評(píng)論 0 13
  • Java關(guān)鍵字的大致含義 關(guān)鍵字 含義 表明類或者成員方法具有抽象屬性 abstract 用來進(jìn)行程序調(diào)試 ass...
    殘?jiān)掠昙娂?/span>閱讀 420評(píng)論 0 0
  • 金雕玉飾成神筆, 舟載車裝盡美文。 詩海遨游常奪冠, 才高潑墨技超群。
    艾思閱讀 523評(píng)論 16 30
  • “卡茲卡茲……”對(duì)于淡而無味的味蕾來說 薯片真是一個(gè)不可多得的好東西 或許是最近感概太多 好兄弟心如死灰瀕臨分手 ...
    夏子君閱讀 673評(píng)論 0 1

友情鏈接更多精彩內(nèi)容