国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

第 6 講:while 循環(huán)

2021-08-23 07:56 作者:SunnieShine  | 我要投稿

循環(huán)是什么?

在我們寫代碼的時候,難免遇到重復的操作。例如我想嘗試從 1 到 100 求和。但顯然,數學公式可以解決這一點:

S_n%20%3D%20%5Cfrac%7Bn(n%20-%201)%7D2

顯然,這種模式完全可以解決這個問題。不過,從代碼的角度來看,我們也可以嘗試讓電腦計算 100 次求和的操作,這樣依然可以解決,而且電腦運算得很快,所以我們完全可以忽略 100 次重復計算和一次計算公式得到結果的時間差。這個時間差我們完全感覺不到。

那么,如何進行重復性的運算呢?我們先理清楚執(zhí)行思路:

如圖所示,我們首先為 iS 賦值,這些數值在后續(xù)都會使用到,這個稱為初始值。然后,我們嘗試先判斷一次是否這個數字 i 超過了 100。如果沒有超過,我們就執(zhí)行第一次把 i 累加到 S 之中??梢?S 表示整個計算的和值結果。接著,i 增大一個單位。于是,我們重新作一次判斷,看此時的 i 是否超過了 100(超過 100 就不計算在內了)。如果沒有超過,就重復操作,繼續(xù)把 i 的新數值累加到 S 之中,并再次增大 i 一個單位;如果 i 已經超過了 100,整個計算的活動行為就結束了。于是我們此時輸出 S 的結果,并退出程序,整個程序執(zhí)行完畢。

看得出來,這個邏輯是比較清楚的。

while (循環(huán))語句

說完基本的計算思路,下面我們來說說它的代碼的語法格式。

基本寫法

while 語句可以解決上述的寫法。我們嘗試來看一下整體的邏輯。

首先我們依舊嘗試為 iS 進行初始賦值,然后直接進入循環(huán)部分。當 i 不超過 100 的時候,就進行累加,并且要增大 i 變量的數值。最后執(zhí)行完畢后,輸出 S 的結果即可。

由此可見,這個類型的執(zhí)行邏輯還是比較清晰的。有一點看起來像是瑕疵的地方在于,我們明明知道 i 此時初始數值是 1,沒有超過 100,而為什么非要在最開始就寫上判斷條件 i <= 100 來判斷是否小于等于 100 呢?這不是廢話嗎?

實際上,這個程序當你輸入了一個無效的數值時,比如 107,這個時候根本不可能計算從 107 到 100 的和(我們的目的是從 1 增大到 100,而 107 超過了 100),所以直接就退出了循環(huán)。另外,while 語句的格式要求把條件放到最開始,所以我們不得不這么做。

所以,總的來說,while 語句的寫法是這樣的:

while 旁邊寫執(zhí)行的元素的判斷條件,然后在大括號里寫上執(zhí)行反復操作的語句。

while 語句也經常被稱為 while 循環(huán)。

作出優(yōu)化

顯然,在前文我們學習了自增自減運算符的前后綴書寫方式的計算問題。當 ++ 寫在變量之后,則表示變量在使用完成后最后增大一個單位。這使得我們原本需要寫成兩句話的語句可以寫成一句話:

這個寫法等價于先執(zhí)行 sum += i; 語句,然后執(zhí)行 i++; 語句增大 i 變量一個單位。

所以,while 語句和 if 執(zhí)行的模式完全一樣,如果重復執(zhí)行的語句只有一個語句,則可以省略大括號,所以上述寫法融入到 while 里則可以寫成這樣:

另外一個示例

下面我們來看另外一則示例。我們還是用求和的思路來講解,不過我們稍作改動。如果我們要計算從 1 到某個數的和,不過問題變?yōu)榱恕闭埱蟪鰪?1 到 n 的所有整數的和 S第一次超過 2400 的時候,此時的 n 的值“。這個問題怎么解決呢?

實際上,可能你想得很復雜。我們知道,while 語句的寫法是一個條件加上重復運算的語句,所以這個題目完全可以只修改執(zhí)行的條件:

注意條件改為了 S <= 2400,其它的地方都沒變化。最后只需要輸出 i 的結果就可以了。

第 6 講:while 循環(huán)的評論 (共 條)

分享到微博請遵守國家法律
阜康市| 定兴县| 彭泽县| 柘城县| 东源县| 新野县| 佳木斯市| 峨边| 河源市| 镇平县| 凤城市| 中超| 长宁县| 博兴县| 抚顺市| 永寿县| 綦江县| 赣州市| 五华县| 武威市| 西乌| 永春县| 康乐县| 黄山市| 肃北| 桐城市| 日土县| 鸡东县| 屏山县| 麻江县| 和林格尔县| 赣州市| 泌阳县| 安远县| 崇仁县| 理塘县| 五峰| 滦南县| 建平县| 罗田县| 崇左市|