C++学习笔记4[循环语句]
C++學(xué)習(xí)目錄鏈接:
C++學(xué)習(xí)筆記目錄鏈接(持續(xù)更新中)
文章目錄
- 一、while循環(huán)
- 二、do...while循環(huán)
- 三、do...while循環(huán)與while循環(huán)區(qū)別
- 四、for循環(huán)
- 五、循環(huán)控制
- 六、循環(huán)嵌套
- 總結(jié)
一、while循環(huán)
???while循環(huán)語(yǔ)句的一-般形式如下:
???while(表達(dá)式)語(yǔ)句
????表達(dá)式-般是一個(gè)關(guān)系表達(dá)式或一個(gè)邏輯表達(dá)式, 表達(dá)式的值應(yīng)該是- -個(gè)邏輯值真或假(true 和false),當(dāng)表達(dá)式的值為真時(shí)開始循環(huán)執(zhí)行語(yǔ)句,當(dāng)表達(dá)式的值為假時(shí)退出循環(huán),執(zhí)行循環(huán)外的下一條
語(yǔ)句。循環(huán)每次都是執(zhí)行完語(yǔ)句后回到表達(dá)式處重新開始判斷,重新計(jì)算表達(dá)式的值,一旦表達(dá)式的值為假時(shí)就退出循環(huán),為真時(shí)就繼續(xù)執(zhí)行語(yǔ)句。while 循環(huán)可以用流程來(lái)演示執(zhí)行過(guò)程,如圖所示。
????語(yǔ)句可以是復(fù)合語(yǔ)句,也就是用大括號(hào)括起多條簡(jiǎn)單語(yǔ)句,大括號(hào)及其所包括的語(yǔ)句,被稱為循環(huán)體,循環(huán)主要指循環(huán)執(zhí)行循環(huán)體的內(nèi)容。
????使用while循環(huán)的注意事項(xiàng)如下:
- (1)表達(dá)式不可以為空,表達(dá)式為空不合法。
- (2)表達(dá)式可以用非0代表邏輯值真(true), 用0代表邏輯值假( false)。
- (3)循環(huán)體中必須有改變條件表達(dá)式值的語(yǔ)句,否則將成為死循環(huán)。
二、do…while循環(huán)
????do…while循環(huán)語(yǔ)句的一般形式如 下:
do
語(yǔ)句
while(表達(dá)式)
????do為關(guān)鍵字,必須與while配對(duì)使用。do與while之間的語(yǔ)句稱為循環(huán)體,該語(yǔ)句同樣是用大括號(hào)“{}”括起來(lái)的復(fù)合語(yǔ)句。循環(huán)語(yǔ)句中的表達(dá)式與while 語(yǔ)句中的相同,也多為關(guān)系表達(dá)式或邏輯表達(dá)式。但特別值得注意的是do…while語(yǔ)句后要有分號(hào)“;”。do…while循環(huán)可以用流程來(lái)演示執(zhí)行過(guò)程,如圖所示。
????do…while循環(huán)的執(zhí)行順序是先執(zhí)行循環(huán)體的內(nèi)容,然后判斷表達(dá)式的值,如果表達(dá)式的值為真就跳到循環(huán)體處繼續(xù)執(zhí)行循環(huán)體,循環(huán)一直到表達(dá)式的值為假。表達(dá)式的值為假時(shí)跳出循環(huán),執(zhí)行下一條語(yǔ)句。
#include <iostream> using namespace std;void main() {int sum=0,i=1;do{sum=sum+i;i=i+1;}while(i<=10);//注意有分號(hào) cout<<"sum:"<<sum<<endl; cout<<"i:"<<i<<endl; }????do…while循環(huán)的注意事項(xiàng)如下:
- (1)循環(huán)先執(zhí)行循環(huán)體,如果循環(huán)條件不成立,循環(huán)體已經(jīng)執(zhí)行-次了,使用時(shí)注意變量變化。
- (2)表達(dá)式不可以為空,表達(dá)式為空不合法。
- (3)表達(dá)式可以用非0代表邏輯值真(true), 用0代表邏輯值假( false)。
- (4)循環(huán)體中必須有改變條件表達(dá)式值的語(yǔ)句,否則將成為死循環(huán)。
- (5)循環(huán)語(yǔ)句后要有分號(hào)“;”。
三、do…while循環(huán)與while循環(huán)區(qū)別
????區(qū)別如下:當(dāng)1開始while表達(dá)式都成立時(shí),兩者最后執(zhí)行結(jié)果一樣。當(dāng)一開始while表達(dá)式為false時(shí),兩者執(zhí)行結(jié)果不一樣。
#include <iostream> using namespace std;void main() {int i=0,j=0;cout<<"before do..,while,j="<<j<<endl;do{j++;}while(i>1);//注意有分號(hào) cout<<"after do..while,j="<<j<<endl;} #include <iostream> using namespace std;void main() {int i=0,j=0;cout<<"before,while,j="<<j<<endl;while(i>1){j++;}cout<<"after, while,j="<<j<<endl;}四、for循環(huán)
????for循環(huán)語(yǔ)句的一般格式如 下:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句
- 表達(dá)式1:該表達(dá)式通常是一個(gè)賦值表達(dá)式,負(fù)責(zé)設(shè)置循環(huán)的起始值,也就是給控制循環(huán)的變量賦初值。
- 表達(dá)式2:該表達(dá)式通常是一個(gè)關(guān)系表達(dá)式,用控制循環(huán)的變量和循環(huán)變量允許的范圍值進(jìn)行比較。
- 表達(dá)式3:該表達(dá)式通常是一個(gè)賦值表達(dá)式,對(duì)控制循環(huán)的變量進(jìn)行增大或減小。
- 語(yǔ)句:語(yǔ)句仍然是復(fù)合語(yǔ)句。
????for循環(huán)執(zhí)行過(guò)程見下
#include <iostream> using namespace std;void main() {int sum=0;int i;for(i=0;i<=10;i++){sum=sum+i;}cout<<"sum is "<<sum<<endl; }????for循環(huán)的注意事項(xiàng)
- (1) for語(yǔ)句可以在表達(dá)式1中直接聲明變量。
????????for在循環(huán)語(yǔ)句中聲明變量,也相當(dāng)于在函數(shù)內(nèi)聲明了變量,如果在表達(dá)式1中聲明兩個(gè)相同變量,編譯器將報(bào)錯(cuò)。例如:
#include <iostream> using namespace std;void main() {for(int i=0,sum=0;i<=10;i++)//在表達(dá)式內(nèi)聲明變量{sum=sum+i;}for(int i=0,sum=0;i<=10;i++)//報(bào)錯(cuò){sum=sum+i;}cout<<"sum is "<<sum<<endl; }- ????for循環(huán)中的表達(dá)式1、表達(dá)式2、表達(dá)式3都可以省略。
如果省略表達(dá)式1,且控制變量在循環(huán)外聲明了并賦初值,程序能編譯通過(guò)并且正確運(yùn)行。例如:下面代碼1
省略了表達(dá)式2也就是省略了循環(huán)判斷語(yǔ)句,即沒(méi)有循環(huán)的終止條件,循環(huán)變成無(wú)限循環(huán)。
省略表達(dá)式3后循環(huán)也是無(wú)限循環(huán),因?yàn)榭刂蒲h(huán)的變量永遠(yuǎn)都是初始值,永遠(yuǎn)符合循環(huán)條件。
for循環(huán)語(yǔ)句如果省略表達(dá)式1和表達(dá)式3,就和while循環(huán)-樣了。例如:下面代碼2
for循環(huán)語(yǔ)句如果省略3個(gè)表達(dá)式,就會(huì)變成無(wú)限循環(huán)。無(wú)限循環(huán)就是死環(huán),它會(huì)使程序進(jìn)入癱瘓狀態(tài)。使用循環(huán)時(shí),建議使用計(jì)數(shù)控制,也就是說(shuō)循環(huán)執(zhí)行到指定次數(shù),就跳出循環(huán)。例如:代碼3
代碼1
#include <iostream> using namespace std;void main() {int i=0,sum=0;for(;i<=10;i++)//將循環(huán)變量拿到表達(dá)式外并賦予初值{sum=sum+i;}cout<<"sum is "<<sum<<endl; }代碼2
#include <iostream> using namespace std;void main() {int i=0,sum=0;for(;i<=10;){sum=sum+i;i++;}cout<<"sum is "<<sum<<endl; }代碼3
#include <iostream> using namespace std;void main() {int i=0,sum=0;for(;;){sum=sum+i;i++;if (i>5)//計(jì)數(shù)控制{break;//跳出循環(huán)}}cout<<"sum is "<<sum<<endl; }五、循環(huán)控制
????循環(huán)控制包含兩方面的內(nèi)容,一方 面是控制循環(huán)變量的變化方式,一方面是控制循環(huán)的跳轉(zhuǎn)。控制循環(huán)的跳轉(zhuǎn)需要用到break和continue兩個(gè)關(guān)鍵字,這兩條跳轉(zhuǎn)語(yǔ)句的跳轉(zhuǎn)效果不同,break 是中斷循環(huán),continue 是跳出本次循環(huán)體的執(zhí)行。
循環(huán)變量控制
????for循環(huán)的循環(huán)控制變量的變化方式有兩種,一個(gè)是遞增方式,一個(gè)是遞減方式。使用遞增方式還是遞減方式和變量的初值和范圍值的比較有關(guān)。
????如果初值大于限定范圍的值,表達(dá)式2是大于關(guān)系(>) 判定的不等式,使用遞減方式。
????如果初值小于限定的范圍值,表達(dá)式2是小于關(guān)系(<) 判定的不等式,使用遞增方式。
????前文使用for循環(huán)計(jì)算1到10的累計(jì)和使用的是遞增方式,也可以使用遞減方式計(jì)算1到10的累計(jì)和。代碼如下:
break語(yǔ)句
????使用break語(yǔ)句可以跳出switch 結(jié)構(gòu)。在循環(huán)結(jié)構(gòu)中,同樣也可用break語(yǔ)句跳出當(dāng)前循環(huán)體,從而中斷當(dāng)前循環(huán)。
????在3種循環(huán)語(yǔ)句中使用break 語(yǔ)句的形式如圖所示。
continue語(yǔ)句
????continue語(yǔ)句是針對(duì)break 語(yǔ)句的補(bǔ)充。continue 不是立即跳出循環(huán)體,而是跳過(guò)本次循環(huán)結(jié)束前的語(yǔ)句,回到循環(huán)的條件測(cè)試部分,重新開始執(zhí)行循環(huán)。在for循環(huán)語(yǔ)句中遇到continue后,首先執(zhí)行循環(huán)的增量部分,然后進(jìn)行條件測(cè)試。在while和do… while循環(huán)中,continue 語(yǔ)句使控制直接回到件測(cè)試部分。
六、循環(huán)嵌套
????循環(huán)有for、while、 do…while 3種方式,這3種循環(huán)可以相互嵌套。例如,在for循環(huán)中套用for循環(huán)。
for(...){for(...){}}在while循環(huán)使用while循環(huán)
while(...){while(...){}} }在while循環(huán)中使用for循環(huán)
while(...){for(...){}}打印9*9乘法表
#include <iostream> #include <iomanip> using namespace std;void main() {int i,j;i=1;j=1;for(i=1;j<10;i++){for(j=1;j<i+1;j++){cout<<setw(2)<<i<<"*"<<j<<"="<<setw(2)<<i*j;}cout<<endl;} }總結(jié)
本文講解了C++中的循環(huán)語(yǔ)句。
作者:電氣-余登武
總結(jié)
以上是生活随笔為你收集整理的C++学习笔记4[循环语句]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 田里养殖什么赚钱 农村创业的朋友一定看一
- 下一篇: C++学习笔记5[函数]