五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第 8 講:for 循環(huán)

2021-08-30 16:17 作者:SunnieShine  | 我要投稿

for 語句的標(biāo)準(zhǔn)寫法

變量循環(huán)其實(shí)就是 whiledo-while 語句的一種特別寫法,為了方便人的理解,才創(chuàng)立的這樣的循環(huán)操作,它是 while 的語法糖。

寫法是這樣的:

for 的括號(hào)里有三個(gè)語句,并且分別使用分號(hào)分開。原因在于它的寫法會(huì)被編譯為 while 語句,所以其實(shí)這些語句在 while 之中也都是需要加分號(hào)的,所以用分號(hào)隔開。兩個(gè)分號(hào)把括號(hào)內(nèi)的內(nèi)容分隔成了三個(gè)部分,按順序分別叫做初始值、條件、增量,即按變量來看的初始情況值,變量作循環(huán)需要滿足的條件(或叫每做完一次循環(huán)后的判斷條件),和每一次循環(huán)完成后變量需要變化的量。

它的解釋是這樣的:先賦初始值、然后判斷條件、條件成立時(shí)執(zhí)行循環(huán)里面的操作、然后對(duì)變量增加增量、然后判斷條件、然后條件成立時(shí)只需循環(huán)里面的操作、然后對(duì)變量增加增量、然后判斷條件,這樣的操作。

比如上面的寫法就是這樣的:

另外,sum = 0 語句還可以直接寫在 for 里。這也是可以的:

不過,變量賦初始值的時(shí)候,多個(gè)變量得用逗號(hào)隔開了。而且,標(biāo)準(zhǔn) C 語言規(guī)定,變量的聲明是不能寫在 for 的里面的,比如這樣是不可以的:

殘缺 for

for 循環(huán)的分號(hào)內(nèi)的東西可有可無,比如不需要的時(shí)候就可以不寫,不過呢,分號(hào)不能省略。

這樣和上面的語句是等價(jià)的。畢竟賦初值可以在前面寫,也可以后面寫。

還可以這樣:

這樣還是等效的。


帶有逗號(hào)表達(dá)式的 for

在說這一點(diǎn)前,就不得不講一個(gè)東西:逗號(hào)表達(dá)式。


逗號(hào)表達(dá)式

逗號(hào)表達(dá)式發(fā)明出來的唯一用途就只是放在 for 里,因?yàn)?for 需要用分號(hào)分隔所有部分(初值、條件和增量),所以如果想要同時(shí)給多個(gè)變量賦初始值的時(shí)候,或者是給多個(gè)變量設(shè)定增量的時(shí)候,就可以使用它,而不影響分號(hào)。

但是,因?yàn)樗窃?C 語言里存在的語法點(diǎn),所以也可以使用在其他場(chǎng)合,雖然這一點(diǎn)并不多大意義。

在賦值操作后,a = 3 * 5, a * 4 就是一個(gè)逗號(hào)表達(dá)式。它由兩個(gè)部分構(gòu)成:a = 3 * 5a * 4。逗號(hào)表達(dá)式的計(jì)算是放在所有操作都執(zhí)行完了才會(huì)執(zhí)行的地方,這里是因?yàn)樗欣ㄌ?hào),所以會(huì)執(zhí)行。

運(yùn)算法則是這樣的,從左到右依次計(jì)算,逗號(hào)表達(dá)式里面每一個(gè)用逗號(hào)分開的部分都會(huì)計(jì)算一次,并取最后一個(gè)部分,作為整體表達(dá)式的數(shù)值。比如這里,從左至右,先讓 a 獲得一個(gè)數(shù)值是 15,然后計(jì)算 a * 4,得到 60,這個(gè) 60 就是整體表達(dá)式的數(shù)值,最后賦值給 b,所以 a = 15、b = 60。

不過,由于它最后才會(huì)被計(jì)算,所以如果沒有括號(hào)的話,就得小心了。

答案竟然是 231!你敢信?我們來看看為什么。

首先,C 語言規(guī)定,它的計(jì)算順序是放在最后的,換句話說,賦值啥的所有操作全部在它前面。所以賦值會(huì)被先執(zhí)行,也就是這句話等于是以下三句話的簡(jiǎn)寫:

只是合并了而已。而這句話你也看得出,逗號(hào)表達(dá)式雖然要取出最后一個(gè)逗號(hào)部分作為表達(dá)式的數(shù)值,但因?yàn)檫\(yùn)算的關(guān)系,a++ 已經(jīng)先被賦值給 c 了,所以最終逗號(hào)表達(dá)式整體數(shù)值結(jié)果其實(shí)并沒有什么用途,故這里其實(shí)只是相當(dāng)于合并書寫的一種操作罷了。

那么,c = a++ 得到 c 的值應(yīng)為 1,因?yàn)?++ 在后。而 a 最終是會(huì)變?yōu)?2 的。然后 b 則會(huì)因?yàn)楹竺鎯删湓?,而增大兩個(gè)單位。所以 b 應(yīng)為 3。所以 a = 2b = 3、c = 1。

逗號(hào)表達(dá)式嵌套到 for

知道這一點(diǎn)之后,我們來看怎么嵌套。

我們知道,為 1 到 100 求和時(shí),除了為作為循環(huán)的變量 i 賦值外,還需要為 sum 給定初始值,否則 sum 從一個(gè)根本就不知道是多少的數(shù)開始增加,是錯(cuò)誤的。

所以我們可以這么寫:

當(dāng)然了,簡(jiǎn)化寫法:

也是 OK 的。注意,這次 for 因?yàn)闆]有大括號(hào)的關(guān)系,循環(huán)的部分就只有 for 帶上這個(gè)小括號(hào)這一部分而已。所以加上了分號(hào),表示它在這里截?cái)啵?/span>for 的語句只能到這里。


為什么經(jīng)常把 for 里用的變量命名為 i

這是一個(gè)很好的問題。你記住一點(diǎn),它誕生自人們的習(xí)慣。之前就說過,變量名稱只會(huì)受到標(biāo)識(shí)符命名規(guī)則的約束,所以取名這一點(diǎn)才是關(guān)鍵。我們最初經(jīng)常使用到 int 類型來表示整數(shù),除非萬不得已才會(huì)調(diào)整類型。而在 for 循環(huán)里,我們常常使用 int 類型的變量作為循環(huán)的成員。而這個(gè)變量一般表示循環(huán)的量,所以它不太好取名。為了簡(jiǎn)單化處理,我們一般使用它的類型名稱的首字母就直接作為了這個(gè)變量的名字。比如這里的 int 變量就直接叫做 i。包括后續(xù)會(huì)介紹到的嵌套循環(huán),那么里面的變量就叫做 j,按著順序排下來,從 i 開始,ij、k、……。

當(dāng)然,如果是一個(gè)字符類型的變量作為初始變量,那么一般就叫做 c 或者 ch,其它的變量按類型取名也都是一樣的規(guī)則。


第 8 講:for 循環(huán)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
高青县| 兴仁县| 铁力市| 龙州县| 元江| 松溪县| 蛟河市| 顺平县| 合江县| 大冶市| 宽甸| 马公市| 高要市| 嘉义县| 凯里市| 奎屯市| 广汉市| 芜湖市| 张家口市| 昆明市| 扶余县| 长汀县| 五家渠市| 湖州市| 栖霞市| 南靖县| 宾阳县| 丹巴县| 鲁甸县| 泾阳县| 保定市| 方正县| 延庆县| 安义县| 老河口市| 贵港市| 西充县| 金塔县| 定日县| 延长县| 南充市|