C 語言中的循環(huán)結(jié)構(gòu)
計算機和人類發(fā)明的算盤一樣,是一種計算工具。而計算機的發(fā)明就是要將人類從簡單重復(fù)勞動中解放出來,所以計算機特別善于進(jìn)行簡單而需要大量人力才能完成的工作。
循環(huán)的做一件事情就是這樣一種簡單而需要耗費大量精力才能完成的一件事情。而且人工在處理這個事情的時候,還會經(jīng)常出現(xiàn)各種錯誤。
循環(huán)作為計算機程序設(shè)計語言中基本的流控制語言,包含在幾乎所有的程序中。比如我們常見的累加,計數(shù),等等都是可以通過循環(huán)來完成的。
1. 循環(huán)結(jié)構(gòu)的分類
既然循環(huán)結(jié)構(gòu)在程序中大量存在,所以為了功能的實現(xiàn),程序中主要有一下四種循環(huán)語句或者結(jié)構(gòu)存在。
- while 語句;
- do … while 語句;
- for 語句;
- 嵌套循環(huán)結(jié)構(gòu)。
在后面的幾個小節(jié)中我們會一一介紹這幾種循環(huán)語句或者結(jié)構(gòu),這個小節(jié)我們只是簡單的認(rèn)識下循環(huán)結(jié)構(gòu)。
2. 循環(huán)語句的應(yīng)用
循環(huán)語句解決的就是大量重復(fù)的工作,如果沒有循環(huán)語句,當(dāng)你想計算從 1 加到 1000 的時候,要么使用高斯公式,也就是 ,要么就是逐個數(shù)字的相加。逐個數(shù)字相加是我們想到的解決問題的最原始的方式,也是最自然的方式。
但是要是逐個相加那么這里面的工作量與相應(yīng)算錯的風(fēng)險是我們要考慮的。但是有了循環(huán)語句,那么,我們可以很方便的通過循環(huán)語句來解決上面的問題。如果要是上面的問題換位了相乘是不是會更讓人棘手。
如果不是數(shù)值的計算,在你需要顯示一千遍別人姓名的時候,你怎么辦?你是在電腦中手寫一千遍輸出語句嗎?或者采用更高級一點的復(fù)制粘貼嗎?
其實這時候,循環(huán)語句就可以解決這個問題。只要在讓這個輸出語句重復(fù)執(zhí)行一千遍就可以了。實現(xiàn)這一功能的代碼,可能只需要兩三行,而不是之前需要復(fù)制一千行出來。這也極大的提高你的生產(chǎn)效率。
當(dāng)然循環(huán)還可以循環(huán)的調(diào)用一段特定的程序來處理相關(guān)的事件。我們常用的操作系統(tǒng),其實可以理解為是一個處于無休止循環(huán)語句中程序。操作系統(tǒng)會無休止的循環(huán),檢查我們的鼠標(biāo)是不是在移動,我們的鍵盤是不是有輸入,我們的顯示器是不是需要輸出,我們的音響是不是要發(fā)聲等等事件。然后調(diào)用相應(yīng)的程序來處理。
3. 循環(huán)語句的注意事項
循環(huán)語句很好用,但是很多時候,由于我們的循環(huán)條件設(shè)置的問題。經(jīng)常會出現(xiàn)兩種情況發(fā)生:一種是我們預(yù)想的循環(huán)次數(shù)與實際的循環(huán)次數(shù)不一致,還有一種情況就是循環(huán)不能結(jié)束,也就是我們常說的陷入了死循環(huán)。
不能結(jié)束的循環(huán)會讓你的程序在耗盡系統(tǒng)為它提供的計算資源后崩潰的。這是一種非常致命的錯誤。所以循環(huán)結(jié)構(gòu)在使用的時候一定要仔細(xì)判斷相關(guān)的循環(huán)條件以及循環(huán)停止的條件是不是可以達(dá)到。