国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C/C++之while(do-while)詳細(xì)講解

這篇具有很好參考價(jià)值的文章主要介紹了C/C++之while(do-while)詳細(xì)講解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

while循環(huán)有兩個(gè)重要組成部分:

while 是一個(gè)預(yù)測(cè)試循環(huán)

無(wú)限循環(huán)

do-while 循環(huán)


while循環(huán)有兩個(gè)重要組成部分:

  1. 進(jìn)行 true 值或 false 值判斷的表達(dá)式;
  2. 只要表達(dá)式為 true 就重復(fù)執(zhí)行的語(yǔ)句或塊;


圖 1 顯示了 while 循環(huán)的一般格式,右側(cè)流程圖直觀地描繪了其工作原理。

c++ do while,C/C++知識(shí)講解,算法,java,c++


圖 1 while 循環(huán)的語(yǔ)句結(jié)構(gòu)及流程圖


現(xiàn)在來(lái)看一看 while 循環(huán)的每個(gè)部分。第一行,有時(shí)稱(chēng)為循環(huán)頭,由關(guān)鍵字 while 組成,后跟待測(cè)試的條件,括在括號(hào)中。條件由任何可被判斷為 true 或 false 的表達(dá)式表示。接下來(lái)是循環(huán)體,它包含一個(gè)或多個(gè)?C++語(yǔ)句。

循環(huán)的工作原理是,首先判斷條件表達(dá)式的值,如果它是真的,則循環(huán)體中的每個(gè)語(yǔ)句都被執(zhí)行;然后,再次測(cè)試條件,如果條件表達(dá)式仍然為 true,則循環(huán)體中的每個(gè)語(yǔ)句將再次被執(zhí)行。如此循環(huán)往復(fù),直到條件表達(dá)式被判斷為 false。

請(qǐng)注意,與 if 語(yǔ)句一樣,在有條件執(zhí)行的主體中的每個(gè)語(yǔ)句都以分號(hào)結(jié)尾,但在括號(hào)中的條件表達(dá)式后面沒(méi)有分號(hào),這是因?yàn)?while 循環(huán)不完整,后面沒(méi)有跟隨的語(yǔ)句。而且,與 if 語(yǔ)句一樣,當(dāng)循環(huán)體包含兩個(gè)或多個(gè)語(yǔ)句時(shí),這些語(yǔ)句必須用大括號(hào)括起來(lái)。當(dāng)循環(huán)的主體只包含一個(gè)語(yǔ)句時(shí),可以省略括號(hào)。

基本上,while 循環(huán)就像是一個(gè)可以執(zhí)行一遍又一遍的 if 語(yǔ)句。只要括號(hào)中的表達(dá)式為 true,則有條件執(zhí)行的語(yǔ)句將不斷重復(fù)。

下面的程序使用了 while 循環(huán)打印“Hello”字符串 5 次。

 
#include <iostream>
using namespace std;

int main()
{
    int count = 1;
    while (count<= 5)
    {
        cout << "Hello ";
        count = count + 1;
    }
    cout << "\nThat's all!\n";
    return 0;
}

程序輸出結(jié)果:

Hello Hello Hello Hello Hello
That's all!

分析這個(gè)程序。在第 6 行中,整數(shù)變量 count 被定義并用值 1 初始化。在第 7 行中,while 循環(huán)以下面的語(yǔ)句開(kāi)頭:

while (count<= 5)

該語(yǔ)句測(cè)試變量 count 以確定其值是否小于或等于 5。因?yàn)樗_實(shí)小于 5,所以循環(huán)體(第 9 行和第 10 行)中的語(yǔ)句被執(zhí)行:

cout << "Hello?? ";
count = count + 1;

第 9 行中的語(yǔ)句將顯示字符串“Hello”。第 10 行中的語(yǔ)句則給變量 count 加上 1,使其值變成了 2。這是循環(huán)體中的最后一個(gè)語(yǔ)句,因此在執(zhí)行之后循環(huán)又一次開(kāi)始。它再次測(cè)試表達(dá)式“count<=5”,并且由于仍然為 true,循環(huán)體中的語(yǔ)句將再次執(zhí)行,該循環(huán)不斷重復(fù),直到變量 count 等于 6,使表達(dá)式“count<=5”為 false,然后退出循環(huán),如圖 2 所示。

c++ do while,C/C++知識(shí)講解,算法,java,c++


圖 2 while 循環(huán)工作原理


循環(huán)的每一次執(zhí)行稱(chēng)為迭代。以上示例中的循環(huán)將執(zhí)行 5 次迭代,直至表達(dá)式“count<=5”被測(cè)試并且發(fā)現(xiàn)為 false,導(dǎo)致循環(huán)終止,然后程序繼續(xù)執(zhí)行該循環(huán)之后的語(yǔ)句??刂蒲h(huán)迭代次數(shù)的變量稱(chēng)為循環(huán)控制變量,在上面的例子中,count 就是循環(huán)控制變量。

while 是一個(gè)預(yù)測(cè)試循環(huán)

while 循環(huán)是一個(gè)預(yù)測(cè)試循環(huán)。這意味著它會(huì)在每次迭代之前測(cè)試其狀態(tài)。如果測(cè)試表達(dá)式為 false,則循環(huán)將永遠(yuǎn)不會(huì)迭代。如果要確保一個(gè) while 循環(huán)至少執(zhí)行一次,則必須初始化相關(guān)的數(shù)據(jù),使測(cè)試表達(dá)式一開(kāi)始即為 true。

例如,注意上面程序中變量 count 的定義:

int count = 1;

count 變量被初始化為值 1。如果數(shù)字已經(jīng)被初始化為大于 5 的值,則循環(huán)將永遠(yuǎn)不會(huì)執(zhí)行,如下面的程序段所示:

int count = 6;
while (count <= 5)
{
    cout << "Hello ";
    count = count + 1;
}

無(wú)限循環(huán)

除極少數(shù)情況外,循環(huán)必須包括一種終止方式。這意味著循環(huán)中的某些內(nèi)容必須最終使測(cè)試表達(dá)式為 false。在上面程序中,當(dāng)表達(dá)式“count <= 5”變?yōu)?false 時(shí),循環(huán)停止。

如果循環(huán)沒(méi)有停止的方式,則稱(chēng)為無(wú)限循環(huán)。無(wú)限循環(huán)將持續(xù)重復(fù),直到程序中斷,示例如下:

int count = 1;
while (count<= 5)
{
    cout << "Hello ";
}

這是一個(gè)無(wú)限循環(huán),因?yàn)樗话?count 變量值的語(yǔ)句。每次測(cè)試表達(dá)式“count <= 5”時(shí),count 的值都是 1。

小心分號(hào)

通過(guò)在 while 循環(huán)的第一行之后意外地放置一個(gè)分號(hào)也可以創(chuàng)建無(wú)限循環(huán),示例如下:

int count = 1;
while (count <= 5) ; //該分號(hào)是一個(gè)錯(cuò)誤
{
    cout << "Hello ";
    count = count + 1;
}

因?yàn)榫幾g器在發(fā)現(xiàn)開(kāi)始語(yǔ)句塊的大括號(hào)之前看見(jiàn)了第一行末尾的分號(hào),所以它會(huì)在分號(hào)的位置結(jié)束循環(huán)。尤其是它會(huì)將分號(hào)前面丟失的語(yǔ)句解釋為空語(yǔ)句,也就是什么都不做的語(yǔ)句,然后將 while 語(yǔ)句和它后面的任何內(nèi)容斷開(kāi)。

對(duì)于編譯器來(lái)說(shuō),整個(gè)循環(huán)看起來(lái)就像下面這樣:

while(count<= 5);

這個(gè) while 循環(huán)將持續(xù)執(zhí)行空語(yǔ)句,當(dāng)然它永遠(yuǎn)不會(huì)執(zhí)行任何操作。該程序似乎“陷入迷惘”,因?yàn)闆](méi)有任何屏幕輸出,也不會(huì)顯示任何活動(dòng)。

不要忘記大括號(hào)

在編寫(xiě)循環(huán)語(yǔ)句時(shí),如果有條件執(zhí)行的語(yǔ)句是一個(gè)語(yǔ)句塊,則不要忘記將所有的語(yǔ)句都包含在一組大括號(hào)中。如果大括號(hào)意外被忽略,則 while 語(yǔ)句有條件執(zhí)行的僅僅是下一個(gè)語(yǔ)句,請(qǐng)看下面的代碼示例:

int count = 1;
//該循環(huán)忘記使用大括號(hào)
while (count <= 5)
    cout << "Hello ";
    count = count + 1;

在這段代碼中,只有一個(gè)語(yǔ)句,也就是 cout 語(yǔ)句,是在 while 循環(huán)的主體中。給變量 count 加 1 的語(yǔ)句不在循環(huán)體內(nèi),所以 count 的值保持為 1,循環(huán)測(cè)試條件永遠(yuǎn)為 true。循環(huán)將一遍又一遍地打印“Hello”字符串,直到用戶(hù)停止程序。

不要混清 == 與 =

循環(huán)的另一個(gè)常見(jiàn)陷阱是,在打算使用 == 運(yùn)算符時(shí),卻意外地使用了 = 運(yùn)算符。例如,以下示例就是一個(gè)無(wú)限循環(huán),因?yàn)樽鳛檠h(huán)條件的測(cè)試表達(dá)式每次都給 remainder 賦值為 1,而不是測(cè)試 remainder 是否等于 1:

while (remainder = 1) //錯(cuò)誤:條件表達(dá)式為賦值語(yǔ)句
{
    cout << "Enter a number: ";
    cin >> num;
    remainder = num % 2;
}

請(qǐng)記住,任何非零值都將被判斷為 true。

do-while 循環(huán)

除了 while 循環(huán)之外,C++ 還提供了?do-while 循環(huán)。do-while 循環(huán)看起來(lái)類(lèi)似于把一個(gè) while 循環(huán)倒過(guò)來(lái)。圖 3 顯示了其格式和流程圖,右側(cè)流程圖直觀地描繪了其工作原理。

c++ do while,C/C++知識(shí)講解,算法,java,c++


圖 3 do-while-循環(huán)的語(yǔ)句結(jié)構(gòu)及流程圖


與 while 循環(huán)一樣,如果循環(huán)體中只有一個(gè)有條件執(zhí)行的語(yǔ)句,則可以省略大括號(hào)。注意,do-while 循環(huán)必須在測(cè)試表達(dá)式的右括號(hào)后用分號(hào)終止。

除了外觀形式,do-while 循環(huán)和 while 循環(huán)之間的區(qū)別是 do-while 是一個(gè)后測(cè)試循環(huán),這意味著在循環(huán)結(jié)束時(shí),也就是在每次迭代完成后,才測(cè)試其表達(dá)式。因此,即使測(cè)試表達(dá)式在開(kāi)始時(shí)為 false,do-while 也至少要執(zhí)行一次迭代。

例如,在以下 while 循環(huán)中,cout 語(yǔ)句根本不會(huì)執(zhí)行:

int x = 1;
while (x < 0)
    cout << x << endl;

但是在以下 do-while 循環(huán)中的 cout 語(yǔ)句將執(zhí)行一次,因?yàn)?do-while 循環(huán)在迭代結(jié)束之前不會(huì)判斷表達(dá)式 x<0:

int x = 1;
do
    cout << x << endl;
while (x < 0);

如果要確保循環(huán)執(zhí)行至少一次,則應(yīng)使用 do-while 循環(huán)。

拜拜~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-787183.html

到了這里,關(guān)于C/C++之while(do-while)詳細(xì)講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++ do...while 循環(huán)

    C++ do...while 循環(huán)

    不像 for 和 while 循環(huán),它們是在循環(huán)頭部測(cè)試循環(huán)條件。do…while 循環(huán)是在循環(huán)的尾部檢查它的條件。 do…while 循環(huán)與 while 循環(huán)類(lèi)似,但是 do…while 循環(huán)會(huì)確保至少執(zhí)行一次循環(huán)。 C++ 中 do…while 循環(huán)的語(yǔ)法: 請(qǐng)注意,條件表達(dá)式出現(xiàn)在循環(huán)的尾部,所以循環(huán)中的 statement(s

    2024年02月10日
    瀏覽(19)
  • Java學(xué)習(xí)筆記:do_while循環(huán)

    相關(guān)介紹: 在Java中, do-while 循環(huán)是一種基本的控制流語(yǔ)句,它至少執(zhí)行一次循環(huán)體,然后根據(jù)條件判斷是否繼續(xù)執(zhí)行。這種循環(huán)結(jié)構(gòu)的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷條件,如果條件為真,則繼續(xù)執(zhí)行循環(huán)體,否則退出循環(huán)。 do-while 循環(huán)的語(yǔ)法如下: 下面是 do-while 循環(huán)的

    2024年04月17日
    瀏覽(19)
  • 【java探索之旅】走進(jìn)循環(huán)結(jié)構(gòu) 深入解析while、for和do while的用法

    【java探索之旅】走進(jìn)循環(huán)結(jié)構(gòu) 深入解析while、for和do while的用法

    ?? 嶼小夏 : 個(gè)人主頁(yè) ??個(gè)人專(zhuān)欄 : Java編程秘籍 ?? 莫道桑榆晚,為霞尚滿天! 循環(huán)結(jié)構(gòu)是編程中非常重要和常用的一種控制結(jié)構(gòu),它允許程序重復(fù)執(zhí)行一段代碼,以實(shí)現(xiàn)特定的功能。在本文中,我們將詳細(xì)介紹while循環(huán)、for循環(huán)和do while循環(huán)的語(yǔ)法和用法,并提供了一

    2024年04月13日
    瀏覽(29)
  • 【C++】C++入門(mén)必備知識(shí)詳細(xì)講解

    【C++】C++入門(mén)必備知識(shí)詳細(xì)講解

    首先我們先要知道,C++是在C的基礎(chǔ)之上,容納進(jìn)去了面向?qū)ο缶幊趟枷耄⒃黾恿嗽S多有用的庫(kù)。本章將會(huì)帶大家了解,C++是補(bǔ)充C語(yǔ)言語(yǔ)法的不足,以及C++是如何對(duì)C語(yǔ)言設(shè)計(jì)不合理的地方進(jìn)行優(yōu)化的。 在C/C++中,變量、函數(shù)等等都是大量存在的,這些變量、函數(shù)和類(lèi)的名稱(chēng)

    2024年02月16日
    瀏覽(22)
  • 深入理解 Java 循環(huán)結(jié)構(gòu):while、do while、for 和 for-each 循環(huán)

    循環(huán)可以執(zhí)行一個(gè)代碼塊,只要達(dá)到指定的條件。循環(huán)很方便,因?yàn)樗鼈児?jié)省時(shí)間,減少錯(cuò)誤,并使代碼更易讀。 while 循環(huán)會(huì)循環(huán)執(zhí)行一個(gè)代碼塊,只要指定的條件為真: 語(yǔ)法 在下面的示例中,只要變量(i)小于 5,循環(huán)中的代碼將一遍又一遍地運(yùn)行: 示例 注意:不要忘

    2024年02月19日
    瀏覽(29)
  • Java實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)驗(yàn)證登錄和注冊(cè)(附詳細(xì)知識(shí)點(diǎn)講解)

    Java實(shí)現(xiàn)連接數(shù)據(jù)庫(kù)驗(yàn)證登錄和注冊(cè)(附詳細(xì)知識(shí)點(diǎn)講解)

    學(xué)完Java基礎(chǔ)后,一般會(huì)做個(gè)項(xiàng)目練手(上一篇博客有講到 Java在線聊天室課程設(shè)計(jì) ) 當(dāng)中肯定會(huì)涉及到 登錄驗(yàn)證 ,但沒(méi)學(xué)過(guò)數(shù)據(jù)庫(kù) ??,不知道如何操作;只能把用戶(hù)賬戶(hù)密碼預(yù)存在一個(gè)txt文本當(dāng)中,然后通過(guò)IO流讀取驗(yàn)證 ? 最后去搜相應(yīng)的資料和網(wǎng)課進(jìn)行學(xué)習(xí),現(xiàn)在問(wèn)題

    2024年02月02日
    瀏覽(19)
  • 循環(huán)(while do...while for)介紹

    循環(huán)(while do...while for)介紹

    1.while循環(huán) while循環(huán)是先判斷后執(zhí)行 while循環(huán)一般都會(huì)有: 循環(huán)初始值, 循環(huán)條件 和 循環(huán)變量增量(或者減量) 2.do…while do…while先執(zhí)行一次,再進(jìn)行判斷 do–while 和 while的區(qū)別 注意: 1, do-while和while比較類(lèi)似, 也有表達(dá)式和執(zhí)行代碼 2, do-while和while的區(qū)別在于判斷條件的先后不一樣

    2024年02月09日
    瀏覽(22)
  • C語(yǔ)言程序設(shè)計(jì):用do while 語(yǔ)句實(shí)現(xiàn)從鍵盤(pán)輸入一組整數(shù),求平均值

    題目?jī)?nèi)容: 用do while 語(yǔ)句實(shí)現(xiàn)反復(fù)從鍵盤(pán)輸入一個(gè)整數(shù),如果大于或等于零,累加求和,直到輸入負(fù)數(shù)結(jié)束。然后求出平均值并輸出。 輸入格式: \\\"%d\\\" 輸出格式: \\\"AVE=%.2fn\\\" 輸入樣例: 25 35 45 55 -1 輸出樣例: AVE=40.00 時(shí)間限制:500ms內(nèi)存限制:32000kb

    2024年02月07日
    瀏覽(109)
  • Java入門(mén)高頻考查算法邏輯基礎(chǔ)知識(shí)3-編程篇(超詳細(xì)18題1.8萬(wàn)字參考編程實(shí)現(xiàn))

    準(zhǔn)備這些面試題時(shí),請(qǐng)考慮如下準(zhǔn)備步驟: 理解問(wèn)題并澄清任何可能的疑點(diǎn)。確保你了解了面試官的期望,包括問(wèn)題限制條件和期望的解決方案。 如果可能且適用的話,嘗試先給出一個(gè)簡(jiǎn)單的解決方案,比如暴力法,然后再逐步優(yōu)化它。 在優(yōu)化之前,先分析暴力解法的效率

    2024年01月18日
    瀏覽(27)
  • QT入門(mén)看這一篇就夠了——超詳細(xì)講解(40000多字詳細(xì)講解,涵蓋qt大量知識(shí))

    QT入門(mén)看這一篇就夠了——超詳細(xì)講解(40000多字詳細(xì)講解,涵蓋qt大量知識(shí))

    目錄 一、Qt概述 1.1 什么是Qt 1.2 Qt的發(fā)展史 1.3 Qt的優(yōu)勢(shì) 1.4 Qt版本 1.5 成功案例 二、創(chuàng)建Qt項(xiàng)目 2.1 使用向?qū)?chuàng)建 2.2 一個(gè)最簡(jiǎn)單的Qt應(yīng)用程序 2.2.1 main函數(shù)中 2.2.2 類(lèi)頭文件 2.3 .pro文件 2.4 命名規(guī)范? 2.5 QtCreator常用快捷鍵 三、Qt按鈕小程序 3.1按鈕的創(chuàng)建和父子關(guān)系 3.2 Qt窗口坐標(biāo)

    2024年02月09日
    瀏覽(94)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包