C++入門教程(9):while 語句

小古銀的官方網(wǎng)站(完整教程):http://www.xiaoguyin.com/
C++入門教程視頻:https://www.bilibili.com/video/av20868986/


接下來講解的是循環(huán)的兩條語句whilefor咖为,當(dāng)我們需要用到循環(huán)的時(shí)候傀广,這兩種循環(huán)語句都是可以使用的,可以從這兩種里選擇一種來使用命雀。而它們的選擇依據(jù)是:哪個(gè)更容易表達(dá)出邏輯就用哪個(gè)沼沈,至于怎樣才能看出哪個(gè)更容易硝烂,這就需要這兩種都寫一次然后進(jìn)行對(duì)比奔脐,直到熟練后就可以靈活選擇了测萎。接下來就是講解這兩種循環(huán)語句闹伪,而講解過程中會(huì)有兩個(gè)例子沪铭,分別用這兩種循環(huán)語句去實(shí)現(xiàn)代碼,在看例子的代碼前祭往,可以自己畫出流程圖伦意,再看例子的代碼,這樣可以加深理解硼补。

while 語句

當(dāng)while的條件是true時(shí)驮肉,將一直執(zhí)行{}中的代碼,直到條件變成false已骇。

while (true或者false)
{
    // 執(zhí)行代碼
} // 執(zhí)行到這里會(huì)跳回上面的 while (true或者false) 重新判斷

基礎(chǔ)示例 1

問題1:輸入5個(gè)整數(shù)數(shù)值离钝,然后求這5個(gè)數(shù)的和。

#include <iostream> // std::cin std::cout std::endl

int main(void)
{
    int sum = 0; // 用于保存所有數(shù)的和
    int count = 0; // 用于記錄輸入了幾個(gè)數(shù)值

    // 當(dāng)輸入的數(shù)值小于5個(gè)時(shí)循環(huán)
    // 達(dá)到5個(gè)數(shù)值時(shí)就不再執(zhí)行
    while (count < 5)
    {
        // 聲明變量用于保存輸入的數(shù)值
        int value = 0;
        std::cin >> value;

        // 每次新輸入的數(shù)值都加到前面數(shù)值的總和里面
        sum = sum + value;

        // 輸入數(shù)值的數(shù)量增加1個(gè)
        count = count + 1;
    } // 執(zhí)行到這里會(huì)跳回上面的 while (count < 5) 重新判斷

    // 輸出綜合
    std::cout << "5個(gè)數(shù)值的總和是:" << sum << std::endl;

    return 0;
}

基礎(chǔ)講解 1

變量count用于記錄輸入數(shù)值的數(shù)量褪储,由于初始時(shí)沒有輸入數(shù)值卵渴,所以初始化為0。當(dāng)每次輸入一個(gè)數(shù)值之后鲤竹,count都會(huì)+1浪读,當(dāng)count達(dá)到5時(shí),也就是說已經(jīng)輸入了5個(gè)數(shù)值的時(shí)候,此時(shí)因?yàn)?code>while的條件不成立而跳出循環(huán)碘橘,然后輸出變量sum的值互订。

而變量sum用于保存5個(gè)數(shù)值的總和,由于初始時(shí)沒有輸入數(shù)值痘拆,所以初始化為0仰禽。在每次循環(huán)中都加上新輸入的數(shù)值,這樣就將5個(gè)數(shù)值加在一起纺蛆,從而得出這5個(gè)數(shù)值的總和吐葵。

變量value只用于每次循環(huán)的時(shí)候暫存輸入的數(shù)值,所以將它的作用域限制在while語句的{}之間桥氏,也就是將變量value的范圍限制在最小的范圍內(nèi)温峭。值得注意的是:由于變量value是在while語句的{}里面,當(dāng)離開這個(gè)}時(shí)它就會(huì)消失识颊,所以在每次循環(huán)中诚镰,變量value都是重新創(chuàng)建的新變量奕坟。

基礎(chǔ)示例 2

問題2:循環(huán)輸入一個(gè)整數(shù)數(shù)值然后再輸出這個(gè)整數(shù)數(shù)值祥款,當(dāng)輸入的數(shù)值是0時(shí)退出循環(huán),但不輸出這個(gè)0月杉。

#include <iostream> // std::cin std::cout std::endl

int main(void)
{
    // 聲明變量value用于保存輸入的數(shù)值
    int value = 0;
    std::cin >> value;

    // 當(dāng)輸入的數(shù)值是0則退出循環(huán)
    while (value != 0)
    {
        // 輸出前面輸入的數(shù)值
        std::cout << "你輸入的是:" << value << std::endl;

        // 保存輸入的數(shù)值
        std::cin >> value;
    } // 執(zhí)行到這里會(huì)跳回上面的 while (value != 0) 重新判斷

    return 0;
}

基礎(chǔ)講解 2

變量value用于每次循環(huán)的時(shí)候暫存輸入的數(shù)值刃跛。它不在while語句里面的原因是:由于while要用到value,所以value要放到while的前面苛萎。

先聲明一個(gè)變量value桨昙,然后保存第一次輸入的數(shù)值,然后判斷這個(gè)數(shù)值是否為0腌歉。當(dāng)這個(gè)數(shù)值不是0的時(shí)候執(zhí)行{}內(nèi)的代碼蛙酪,由于剛才已經(jīng)輸入了一個(gè)數(shù)值,所以就需要輸出這個(gè)數(shù)值翘盖,然后保存輸入的數(shù)值桂塞,接著再重新判斷新輸入的數(shù)值是否為0。

鞏固練習(xí)(用 while 語句實(shí)現(xiàn))

  1. 輸入n個(gè)小數(shù)馍驯,求它們的最小值阁危、最大值和平均值。首先輸入一個(gè)正整數(shù)n汰瘫,代表后面要輸入n個(gè)小數(shù)狂打,然后輸入n個(gè)小數(shù),當(dāng)輸入完成后混弥,輸出它們的最小值趴乡、最大值和平均值。
  2. 輸入若干個(gè)整數(shù)數(shù)值,求它們的最小值晾捏、最大值和平均值官辽。循環(huán)輸入整數(shù)數(shù)值直到輸入數(shù)值0,當(dāng)輸入完成后粟瞬,輸出它們的最小值同仆、最大值和平均值。
  3. 輸出1*1 + 2*2 + 3*3 + ... + 100*100的結(jié)果裙品。
  4. 輸出2^0 + 2^1 + 2^2 + ... + 2^63的結(jié)果俗批。
  5. 輸出1! + 2! + 3! + ... + 10!的結(jié)果。
  6. 輸出1 + 1/1! + 1/2! + 1/3! + ...的結(jié)果市怎。
  7. 求π的值岁忘。提示π/4 = 1 - 1/3 + 1/5 - 1/7 + ...的結(jié)果。
  8. 輸入5個(gè)數(shù)区匠,統(tǒng)計(jì)其中正數(shù)干像、負(fù)數(shù)和0的個(gè)數(shù)。
  9. 輸入若干個(gè)整數(shù)數(shù)值驰弄,求其中的奇數(shù)之和與偶數(shù)之和麻汰。循環(huán)輸入整數(shù)數(shù)值直到輸入數(shù)值0,當(dāng)輸入完成后戚篙,輸出它們的奇數(shù)之和與偶數(shù)之和五鲫。
  10. 輸入一個(gè)小數(shù)x和一個(gè)整數(shù)y,求x的y次方岔擂。(x是正數(shù)位喂,y包括正數(shù)負(fù)數(shù)和0)
  11. 求水仙花數(shù)(一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)字本身)乱灵。
  12. 求斐波那契數(shù)列的第n項(xiàng)塑崖。斐波那契數(shù)列定義:F(0)=0,F(xiàn)(1)=1, F(n)=F(n-1)+F(n-2)(n>=2痛倚,n∈N*)规婆,求第n項(xiàng)的值。
  13. 輸入一個(gè)整數(shù)状原,輸出這個(gè)整數(shù)的各數(shù)字反序的數(shù)值聋呢。如輸入123456就輸出654321
  14. 輸入一個(gè)整數(shù)颠区,輸出這個(gè)整數(shù)的各位數(shù)之和削锰。如輸入12345就輸出15
  15. 輸出1000以內(nèi)所有素?cái)?shù)(素?cái)?shù)定義:一個(gè)大于1的自然數(shù)毕莱,除了1和它自身外器贩,不能被其他自然數(shù)整除的數(shù)叫做素?cái)?shù)或者質(zhì)數(shù))颅夺。
  16. 輸出九九乘法表。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛹稍,一起剝皮案震驚了整個(gè)濱河市吧黄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唆姐,老刑警劉巖拗慨,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異奉芦,居然都是意外死亡赵抢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門声功,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烦却,“玉大人,你說我怎么就攤上這事先巴∑渚簦” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵伸蚯,是天一觀的道長(zhǎng)摩渺。 經(jīng)常有香客問我,道長(zhǎng)朝卒,這世上最難降的妖魔是什么证逻? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任乐埠,我火速辦了婚禮抗斤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丈咐。我一直安慰自己瑞眼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布棵逊。 她就那樣靜靜地躺著伤疙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辆影。 梳的紋絲不亂的頭發(fā)上徒像,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音蛙讥,去河邊找鬼锯蛀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛次慢,可吹牛的內(nèi)容都是我干的旁涤。 我是一名探鬼主播翔曲,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼劈愚!你這毒婦竟也來了瞳遍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤菌羽,失蹤者是張志新(化名)和其女友劉穎掠械,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體注祖,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡份蝴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氓轰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婚夫。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖署鸡,靈堂內(nèi)的尸體忽然破棺而出案糙,到底是詐尸還是另有隱情,我是刑警寧澤靴庆,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布时捌,位于F島的核電站,受9級(jí)特大地震影響炉抒,放射性物質(zhì)發(fā)生泄漏奢讨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一焰薄、第九天 我趴在偏房一處隱蔽的房頂上張望拿诸。 院中可真熱鬧,春花似錦塞茅、人聲如沸亩码。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽描沟。三九已至,卻和暖如春鞭光,著一層夾襖步出監(jiān)牢的瞬間吏廉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工惰许, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留席覆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓啡省,卻偏偏與公主長(zhǎng)得像娜睛,于是被迫代替她去往敵國(guó)和親髓霞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容