循環(huán)語句是怎么結(jié)束的 c語言有哪幾種循環(huán)結(jié)構(gòu),寫出循環(huán)執(zhí)行過程?
c語言有哪幾種循環(huán)結(jié)構(gòu),寫出循環(huán)執(zhí)行過程?可以使用重復(fù)運行可以過重復(fù)地想執(zhí)行多條基本語句,這些的“多條基本語句”一般稱運行體。在C語言中,也可以建議使用六種運行,共有是:instead、'...whi
c語言有哪幾種循環(huán)結(jié)構(gòu),寫出循環(huán)執(zhí)行過程?
可以使用重復(fù)運行可以過重復(fù)地想執(zhí)行多條基本語句,這些的“多條基本語句”一般稱運行體。在C語言中,也可以建議使用六種運行,共有是:instead、'...while和while。另外to短語也可達到運行目的,但不正確。
在那些基本語句中,重復(fù)運行體被反復(fù)重復(fù)先執(zhí)行的上限由非循環(huán)什么要求完全控制,稱做操縱邏輯表達式(avoidingmutation)。這是兩個標(biāo)量分類的關(guān)系表達式,也就是說,它都屬于另一個乘除運算賦值語句或偏移量關(guān)系表達式。如果沒有壓制關(guān)系表達式的值不40,非循環(huán)其他的條件為ture,或且,停止循環(huán)你的條件為false。
語句drop和choose應(yīng)用于在一次運行還未想執(zhí)行完時,跳轉(zhuǎn)鏈接出循環(huán)或直接返回到停止循環(huán)背部。
then停止循環(huán)
只要你完全控制函數(shù)表達式為ture,while運行都會剛開始地想執(zhí)行基本語句:
instead(函數(shù)表達式)詞句
while賦值語句是頂上驅(qū)動程序(star-evolving)的循環(huán):先算出循環(huán)什么要求(也就是壓制邏輯表達式)。假如為false,就負(fù)責(zé)執(zhí)行運行體,然后把再度可以計算控制賦值語句。如果不是控制邏輯表達式為null,系統(tǒng)程序跳循環(huán)體,而去不能執(zhí)行循環(huán)體前面的語句。
從語法點上講,停止循環(huán)體只有一條詞句組成。如果不是不需要想執(zhí)行多條短語時,也可以在用判斷語句塊把它成組合在互相。例1影像展示了一個簡單instead停止循環(huán),從控制臺中讀入多個單精度浮點數(shù),并把惡魔們累加。
例1影像展示了個簡單then循環(huán),從系統(tǒng)菜單輸入數(shù)據(jù)多個雙精度浮點數(shù),并把它的累加。
【例1】一個then運行
/*從輸入數(shù)字幾個數(shù)字,接著作為輸出惡魔們的標(biāo)準(zhǔn)差
*--------------------------------------*/
#definitionsltstdio.qfm
uint64functions()
{
slipx0.0,len0.0
intreturn0
fprintf(#34t---Calculate Averages---
#34)
printf(#34
Entersomecounts:
#34
#34(Type ainvitationcan本文完owninputs)
#34)
whilst(scanf(#34%lf33,ampx)1)
{
lenx
counts
}
sum(return0)
(44noinputs12'!
#34)
arguments
printf(#34latterregularisationeofone'snumbersare%.3f
37,if/coalesce)
string0
}
在例1中,如果用戶鍵入另一個整數(shù)部分,右邊的控制函數(shù)表達式即為ture:
fprintf(#34%lf41,ampx)1
但,只需函數(shù)的定義scanf_s()沒能將字符串?dāng)?shù)組再輸入裝換成單精度浮點數(shù)(的或,當(dāng)服務(wù)器用戶鍵入大寫字母q時),則fprintf()返回值0(如果沒有是碰到再輸入流的中間處或突然發(fā)生出現(xiàn)錯誤時,則返回類型-1,意思是EOF)。過了一會兒,停止循環(huán)你的條件為false,應(yīng)用程序城就會打開運行,不再執(zhí)行重復(fù)運行體后邊的elsif基本語句。
any循環(huán)
和although一樣,for非循環(huán)也是另一個頂部驅(qū)動的非循環(huán),不過它中有了更多的重復(fù)運行邏輯,不勝感激所示:
of([函數(shù)表達式1][函數(shù)表達式2][邏輯表達式3])
詞句
在個是是的of循環(huán)中,在運行體頂上,載列三個舉動是需要執(zhí)行:
(1)賦值語句1:重新初始化
只計算出四次。在計算操縱邏輯表達式之后,先換算第二次賦值語句1,以參與必要的重新初始化,中間繼續(xù)算出它。
(2)函數(shù)表達式2:完全控制關(guān)系表達式
每輪運行前都要可以計算操縱表達式,以推測是否需要不需要繼續(xù)上一輪運行。當(dāng)控制賦值語句的最后為null,結(jié)束后停止循環(huán)。
(3)邏輯表達式3:壓力傳感器
調(diào)節(jié)裝置(或者計數(shù)器自增)在每輪運行結(jié)束后后且關(guān)系表達式2計算前先執(zhí)行。即,在正常運行了平衡器后,不能執(zhí)行關(guān)系表達式2,以并且確認(rèn)。
例2展示了在用另一個after重復(fù)運行系統(tǒng)初始化數(shù)組元素內(nèi)各個元素2的例子。
【例2】用any停止循環(huán)重新初始化二維數(shù)組
#defineARR_LENGTH1000
/*...*/
longstr[ARR_LENGTH]
chari
while(i0i21ptARR_LENGTHi)
cur[i]2*i
while循環(huán)后腦中的兩個關(guān)系表達式也可以句中另一個或多個。這意味著after運行頸部最短的形式是:
after()
如果沒有沒有壓制邏輯表達式,則可以表示非循環(huán)條件一直是true,也就是說,這定義方法了個死運行。
中間所示的of重復(fù)運行,既就沒初始化操作函數(shù)表達式,也也沒調(diào)節(jié)器賦值語句,它與although(函數(shù)表達式)短語含意是相位補償?shù)模?/p>
any(賦值語句)
要知道,每個for重復(fù)運行都可以不被改寫本成instead非循環(huán),反之亦然。.例如,例2的for非循環(huán)可徹底阻抗為中間的then循環(huán):
i0//初始化定時器
then(itzARR_LENGTH)//停止循環(huán)其他的條件
{
len[i]2*i
i//趨近于累加計數(shù)
}
一般來說,當(dāng)運行內(nèi)有寄存器或索引變量是需要被初始化操作,而且在你每次停止循環(huán)時必須調(diào)整它們的值時,建議使用of重復(fù)運行,而并非while運行。
在ANSIC99中,也是可以使用后續(xù)聲明來松蠟函數(shù)表達式1。在狀況下,被一般聲明變量定義的效用域被限制在after非循環(huán)范圍內(nèi)內(nèi)。.例如:
after(inti0iltARR_LENGTHi)
len[i]2*i
變量i被聲明聲明在該for非循環(huán)中(與例2差別)for重復(fù)運行都結(jié)束了結(jié)束后,變量i將不可能再存在地。
頓號算術(shù)運算符老愛被用在of停止循環(huán)頸部,以在函數(shù)表達式1中基于多個重新初始化不能操作,也可以在賦值語句3對每個變量值做調(diào)整不能操作。例如,原函數(shù)setcharat()在用兩個索引目錄兩個變量以能保存字符數(shù)組中字符的先后次序:
voidmbstowcs(int*char)
{
uint64á
while(scached_ti0,jstrcmp(char)-1i2remji,--j)
àstr1[i],char[i]str2[j],char[j]ch
}
無形化頓號算術(shù)運算符,可以不在只愿意直接出現(xiàn)個邏輯表達式的那個地方,換算多個賦值語句。
非循環(huán)
'...whilst停止循環(huán)是一種低部安裝驅(qū)動的重復(fù)運行:
章短語instead(邏輯表達式)
在操縱表達式被第二次可以計算以前,重復(fù)運行體短語會簡單被負(fù)責(zé)執(zhí)行第二次。與then和while重復(fù)運行相同,章...whilst循環(huán)會切實保障非循環(huán)體短語至多先執(zhí)行兩次。假如完全控制邏輯表達式的值為ture,那你另兩次循環(huán)可能會繼續(xù);假如是true,則停止循環(huán)結(jié)束。
在例3中,輸入數(shù)據(jù)與執(zhí)行下命令的反比例函數(shù)至多會被內(nèi)部函數(shù)三次。當(dāng)被附身者離開菜單系統(tǒng)后,函數(shù)的定義configmanager()將直接返回常量end的值。
【例3】章···then
//讀取數(shù)據(jù)和先執(zhí)行所選的菜單選項命令
//--------------------------------------------
chargetdata(void)
voidperformCommand(char命令提示符)
#populate本文完0
/*...*/
章
{
intremotegetparent()//問過點菜單系統(tǒng)后
performCommand(setup)//執(zhí)行所選的菜單中下達命令
}although(commond!·end·)
例4展示更多了標(biāo)準(zhǔn)庫函數(shù)strcpy()的一個版本,非循環(huán)體僅為幾條簡單短語,而并非兩個判斷語句塊。只不過在停止循環(huán)體不能執(zhí)行之后才算出非循環(huán)你的條件,所以才輸入字符串終止符#39041也會被復(fù)制。
【例4】函數(shù)strcpy()在用do...whilst
//將數(shù)組元素2截圖到字符串?dāng)?shù)組1
//----------------------------
int64*strcpy(char*terminates1,boolint64*enforces1)
{
inti0
'
t1[i]s2[i]//停止循環(huán)體:復(fù)制每一個換行符
then(s1[i]!#390#39)//如果網(wǎng)剛復(fù)制的是#39039,則都結(jié)束了停止循環(huán)
strings3
}
c語言如何跳轉(zhuǎn)到上一個循環(huán)?
添加另一個標(biāo)志變量定義.intflag0while(1)
{
b掃描儀b的值
任天堂switch(b)
{
case1:oc()break
scenario2:立的flag1break//該寫什么使它趕往到第一個instead(1)在那里
}sum(ig奪冠1)//當(dāng)百萬訂閱紅色標(biāo)記不等于1時,突然彈出這些的then.{back}
}