疫情之下,循環(huán)之路開啟

每日一句:

每個(gè)人一生中都至少應(yīng)該獲得一次全場(chǎng)起立鼓掌的機(jī)會(huì)麦箍,因?yàn)槲覀兌荚鴦龠^這個(gè)世界漓藕。

? ? —R.J.帕拉西奧《奇跡男孩》

疫情之下,最容易受到影響的群體内列,就是學(xué)生群體撵术。

那么我們便可以寫一個(gè)程序來證明背率,假設(shè)箭第一次走完一半的路程時(shí)間為1秒话瞧,然后每1/2秒走完剩余距離的一半,然后再用1/4秒走完剩余距離的一半...那么我們可以用下面的這個(gè)式子來表達(dá)總時(shí)間:

1+1/2+1/4+1/8+...

這里是不是有很多個(gè)式子相加寝姿,那么我們?cè)撊绾伟堰@些式子寫到程序中呢交排?

下面我來一一介紹這三位光桿司令(While,do while,for)

NO.1

首先登場(chǎng)的呢是我們的while饵筑,它是一個(gè)英文單詞獨(dú)擋一面啊埃篓。While語句也稱While循環(huán),循環(huán)中While是入口條件循環(huán)根资,程序再進(jìn)入循環(huán)體之前必須獲取輸入的數(shù)據(jù)并檢查條件中的值架专。

1.while循環(huán)的通用形式如下:

while(表達(dá)式){

循環(huán)體; }//循環(huán)體也可以為空語句

注釋:當(dāng)表達(dá)式為真時(shí)玄帕,則執(zhí)行下面的循環(huán)體部脚;循環(huán)體執(zhí)行完之后再判斷表達(dá)式是否為真,如果為真裤纹,則再次執(zhí)行下面的語句委刘;然后再判斷表達(dá)式是否為真……就這樣一直循環(huán)下去,直到表達(dá)式為假鹰椒,跳出循環(huán)锡移。這便是 while 的執(zhí)行順序。

2.終止while循環(huán):

while循環(huán)有一點(diǎn)非常重要:在構(gòu)建while循環(huán)時(shí)漆际,必須要讓測(cè)試表達(dá)式的值有變化淆珊,且表達(dá)式最終要為假,否則循環(huán)就是死循環(huán)奸汇。

還要明確一點(diǎn)就是只有在對(duì)測(cè)試條件求值時(shí)施符,才決定是終止還是循環(huán)繼續(xù)钞支。

3.while:入口條件循環(huán)(for循環(huán)語句也是)

while循環(huán)是使用入口條件的有條件循環(huán)。什么是“有條件”呢操刀,它其實(shí)指的是語句部分的執(zhí)行取決于測(cè)試表達(dá)式描述的條件烁挟。表達(dá)式是一個(gè)入口條件,因?yàn)楸仨氁獫M足條件才能進(jìn)入循環(huán)體骨坑。若條件不滿足撼嗓,則不會(huì)進(jìn)入循環(huán)體。

在寫while語句時(shí)括號(hào)中的表達(dá)式通常為判斷語句欢唾,比如:

status==1且警;//判斷status是否為1

status=1;//把1賦值給status

要注意的是==與=是有區(qū)別的礁遣,斑芜,==是C的相等運(yùn)算符,上面表達(dá)式是判斷status是否為1祟霍。而=是把1賦值給status杏头。

注:

當(dāng)初學(xué)者學(xué)編程時(shí),for沸呐、while醇王、do? while后面的執(zhí)行語句不論有多少行,就算只有一行也要加“{}”崭添,以養(yǎng)成良好的編程習(xí)慣寓娩。

我們?cè)谇么a時(shí)通常會(huì)用到偽代碼,偽代碼是一種簡(jiǎn)單的句子表示程序思路的方法呼渣。它與計(jì)算機(jī)的形式相對(duì)應(yīng)棘伴。它有助于我們理清設(shè)計(jì)程序的邏輯。使用偽代碼的好處便是我們可以把注意力集中在程序的組織和邏輯上屁置,可以暫時(shí)不用思考該如何用編程語言來表達(dá)自己的想法焊夸。

看維基百科說偽代碼:

偽代碼(英語:pseudocode),又稱為虛擬代碼缰犁,是高層次描述算法的一種方法淳地。它不是一種現(xiàn)實(shí)存在的編程語言(已經(jīng)出現(xiàn)了類似偽代碼的語言,參見Nuva)帅容;它可能綜合使用多種編程語言的語法颇象、保留字,甚至?xí)玫阶匀徽Z言并徘。

它以編程語言的書寫形式指明算法的職能遣钳。相比于程序語言(例如Java、C++麦乞、C蕴茴、Delphi 等等)它更類似自然語言劝评。它是半形式化、不標(biāo)準(zhǔn)的語言倦淀。我們可以將整個(gè)算法運(yùn)行過程的結(jié)構(gòu)用接近自然語言的形式(這里可以使用任何一種作者熟悉的文字蒋畜,例如中文、英文撞叽,重點(diǎn)是將程序的意思表達(dá)出來)描述出來姻成。使用偽代碼,可以幫助我們更好的表述算法愿棋,不用拘泥于具體的實(shí)現(xiàn)科展。

人們?cè)谟貌煌木幊陶Z言實(shí)現(xiàn)同一個(gè)算法時(shí)意識(shí)到,他們做出來的實(shí)現(xiàn)(而非功能)很不同糠雨。程序員要理解一個(gè)用他并不熟悉的編程語言編寫的程序才睹,可能是很困難的,因?yàn)槌绦蛘Z言的形式限制了程序員對(duì)程序關(guān)鍵部分的理解甘邀,而偽代碼可以用于幫助人們理解解釋代碼的語法琅攘、規(guī)則、內(nèi)涵和結(jié)構(gòu)鹃答。于是偽代碼就這樣應(yīng)運(yùn)而生了乎澄。

當(dāng)考慮算法功能(而不是其語言實(shí)現(xiàn))時(shí),偽代碼常常得到應(yīng)用测摔。計(jì)算機(jī)科學(xué)在教學(xué)中通常使用偽代碼,以幫助學(xué)習(xí)者能夠快速并透徹地理解解恰。

NO.2

第二位登場(chǎng)的老大便是do while锋八,同樣也是三大光桿司令中的一員。但他跟While不同护盈,do while循環(huán)是出口條件語句挟纱。何為出口條件循環(huán)呢,即在循環(huán)的每次迭代之后檢查測(cè)試條件腐宋,保證至少能執(zhí)行一次循環(huán)體中的內(nèi)容紊服。

1.do while循環(huán)的通用形式如下:

do{? ?

? 循環(huán)體? }while();注:do while語句以分號(hào)結(jié)尾

注釋:do-while 循環(huán)的執(zhí)行流程:首先無條件地執(zhí)行一次循環(huán)體胸竞,然后再根據(jù)循環(huán)控制表達(dá)式的值來判斷是否繼續(xù)執(zhí)行循環(huán)體欺嗤。若為真,則繼續(xù)執(zhí)行卫枝;若為假煎饼,則停止執(zhí)行,退出 do-while 循環(huán)校赤。也就是說吆玖,do-while 循環(huán)至少會(huì)執(zhí)行一次循環(huán)體筒溃。

那么我們?cè)撊绾螀^(qū)別While和do while呢。前面我寫過一篇文章關(guān)于while和do while的文章沾乘,見下:

? 深探 while 與 do while

注:用關(guān)系運(yùn)算符和表達(dá)式比較大小

循環(huán)經(jīng)常要用到測(cè)試表達(dá)式來作比較怜奖,這樣的表達(dá)式稱為關(guān)系表達(dá)式。出現(xiàn)在關(guān)系表達(dá)式中間的運(yùn)算符叫做關(guān)系運(yùn)算符翅阵。相關(guān)關(guān)系運(yùn)算符如下:

既然說到關(guān)系運(yùn)算符烦周,那我們來講講運(yùn)算符的優(yōu)先級(jí)

關(guān)系運(yùn)算符的優(yōu)先級(jí)比算術(shù)運(yùn)算符低,比賦值運(yùn)算符高怎顾。相關(guān)的運(yùn)算符優(yōu)先級(jí)表這里就不放出來了读慎,比較長(zhǎng),感興趣的可以去百度搜一下槐雾。

NO.3

for作為最后出場(chǎng)的老大夭委,也算是三個(gè)老大里出場(chǎng)最多的了。為什么怎么說呢募强,因?yàn)樗糜寐镏昃模瑢?duì)不對(duì),因?yàn)楹糜貌沤?jīng)常出現(xiàn)在C語言的代碼中擎值。

1.for循環(huán)的通用形式如下:

for(表達(dá)式1慌烧;表達(dá)式2;表達(dá)式3){

循環(huán)體}

注釋:for循環(huán)后面的括號(hào)里有三個(gè)表達(dá)式鸠儿,分別用兩個(gè)分號(hào)隔開屹蚊。第一個(gè)表達(dá)式是初始化,只會(huì)在循環(huán)開始時(shí)執(zhí)行一次进每;第二個(gè)為測(cè)試條件汹粤,在執(zhí)行循環(huán)之前對(duì)表達(dá)式求值;如果為假田晚,循環(huán)結(jié)束嘱兼,否則繼續(xù)執(zhí)行第三個(gè)語句并繼續(xù)循環(huán)。

for循環(huán)的第一個(gè)表達(dá)式給計(jì)數(shù)器賦值贤徒,第二個(gè)表達(dá)式表示計(jì)數(shù)器的范圍芹壕,第三個(gè)表達(dá)式遞增或者遞減計(jì)數(shù)器。

for循環(huán)之所以好用接奈,也是因?yàn)樗撵`活性踢涌。并且還有如下九種用法:

可以使用遞減運(yùn)算符來遞減計(jì)數(shù)器

可以讓計(jì)數(shù)器遞增2,10等

可以用字符代替數(shù)字計(jì)數(shù)

除了測(cè)試迭代次數(shù)外鲫趁,斯嚎,還可以測(cè)試其他條件

可以讓遞增的量幾何增長(zhǎng),而不是算術(shù)增長(zhǎng)

第三個(gè)表達(dá)式可以使用任意合法的表達(dá)式

可以省略一個(gè)或多個(gè)表達(dá)式(但不能省略分號(hào)),只要在循環(huán)中包含能結(jié)束循環(huán)的語句即可

第一個(gè)表達(dá)式不一定是給變量賦初值堡僻,也可以使用printf()

循環(huán)體中的行為可以改變循環(huán)頭中的表達(dá)式

我們?cè)谑褂醚h(huán)時(shí)該如何選擇使用哪一種語句呢糠惫?

首先,我們得先確定是需要入口條件循環(huán)還是出口條件循環(huán)钉疫。一般我們都是入口條件循環(huán)用的次數(shù)較多硼讽。這是因?yàn)榘凑找话阍瓌t是在執(zhí)行循環(huán)之前測(cè)試條件比較好,而且測(cè)試放在循環(huán)的開頭可使程序的可讀性更高牲阁。還有就是在許多應(yīng)用中固阁,要求在一開始不滿足測(cè)試條件時(shí)就直接跳過整個(gè)循環(huán)。

我們平常用得最多的還是入口條件循環(huán)城菊,那么在入口條件循環(huán)中我們?cè)撊绾芜x擇是使用for語句還是while語句呢备燃?這個(gè)就取決于個(gè)人喜好啦,原因是兩者可以互補(bǔ)凌唬,for語句和while語句大多數(shù)情況下都是可以互相替換的并齐。

最后的話

相信你學(xué)到這里或多或少都對(duì)循環(huán)有了一定的了解,想要更好的理解循環(huán)客税,建議多看幾遍哦况褪。這也是經(jīng)過多次閱讀書籍從而整理出來的循環(huán)里最重要的一些知識(shí)點(diǎn)。希望大家看完這篇文章后對(duì)循環(huán)有更好的了解更耻。

一個(gè)正在學(xué)習(xí)C語言的人测垛,致力于將C講得更透徹!

點(diǎn)贊關(guān)注~謝謝你~

歡迎在留言區(qū)留下你的想法秧均,讓我們一起討論提高食侮。

關(guān)注公眾號(hào)即可獲得千G資源哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市熬北,隨后出現(xiàn)的幾起案子疙描,更是在濱河造成了極大的恐慌,老刑警劉巖讶隐,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異久又,居然都是意外死亡巫延,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門地消,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炉峰,“玉大人,你說我怎么就攤上這事脉执√劾” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)婆廊。 經(jīng)常有香客問我迅细,道長(zhǎng),這世上最難降的妖魔是什么淘邻? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任茵典,我火速辦了婚禮,結(jié)果婚禮上宾舅,老公的妹妹穿的比我還像新娘统阿。我一直安慰自己,他們只是感情好筹我,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布扶平。 她就那樣靜靜地躺著,像睡著了一般蔬蕊。 火紅的嫁衣襯著肌膚如雪结澄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天袁串,我揣著相機(jī)與錄音概而,去河邊找鬼。 笑死囱修,一個(gè)胖子當(dāng)著我的面吹牛赎瑰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播破镰,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼餐曼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了鲜漩?” 一聲冷哼從身側(cè)響起源譬,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孕似,沒想到半個(gè)月后踩娘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡喉祭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年养渴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泛烙。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡理卑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔽氨,到底是詐尸還是另有隱情藐唠,我是刑警寧澤帆疟,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宇立,受9級(jí)特大地震影響踪宠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泄伪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一殴蓬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蟋滴,春花似錦染厅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尔苦,卻和暖如春涩馆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背允坚。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工魂那, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稠项。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓涯雅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親展运。 傳聞我的和親對(duì)象是個(gè)殘疾皇子活逆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348