初學(xué)者怎樣看懂代碼 C語(yǔ)言中的goto語(yǔ)句。為什么老師反復(fù)強(qiáng)調(diào)不能用?
C語(yǔ)言中的goto語(yǔ)句。為什么老師反復(fù)強(qiáng)調(diào)不能用?說(shuō)到goto的顏色變化,主要原因是goto太自由了,甚至比匯編語(yǔ)言跳躍更自由。跳轉(zhuǎn)還需要考慮長(zhǎng)地址、短地址等跳轉(zhuǎn)。Goto完全沒(méi)有限制。它可以直接從函
C語(yǔ)言中的goto語(yǔ)句。為什么老師反復(fù)強(qiáng)調(diào)不能用?
說(shuō)到goto的顏色變化,主要原因是goto太自由了,甚至比匯編語(yǔ)言跳躍更自由。跳轉(zhuǎn)還需要考慮長(zhǎng)地址、短地址等跳轉(zhuǎn)。Goto完全沒(méi)有限制。它可以直接從函數(shù)內(nèi)部傳遞到函數(shù)外部,甚至傳遞到其他函數(shù)。這涉及到一個(gè)問(wèn)題。我們都知道函數(shù)調(diào)用是為了保護(hù)當(dāng)前的上下文,以及當(dāng)前的執(zhí)行堆棧和寄存器。一旦它進(jìn)入被調(diào)用函數(shù)的內(nèi)部,堆棧和寄存器都將改變。如果在函數(shù)內(nèi)部使用goto去其他地方而函數(shù)不返回,程序就會(huì)亂七八糟,導(dǎo)致內(nèi)存泄漏。因此,必須限制goto的使用。1函數(shù)內(nèi)部的goto只能轉(zhuǎn)到函數(shù),以確保函數(shù)可以返回到被調(diào)用的。2中斷中的goto也是一樣的。Goto必須能夠保證中斷正常返回,否則也會(huì)導(dǎo)致中斷異常??傊唤ㄗh使用goto,因?yàn)樗梢蕴D(zhuǎn)到您想要執(zhí)行的位置,而不受任何限制。它太自由了,但這是好事還是壞事,取決于程序開(kāi)發(fā)人員的設(shè)計(jì)是否考慮周全,是否會(huì)導(dǎo)致這樣那樣的問(wèn)題。
計(jì)算機(jī)C語(yǔ)言中的關(guān)鍵字:do是什么意思?
C語(yǔ)言中的關(guān)鍵字do不能單獨(dú)使用,必須與while一起使用。
C語(yǔ)言中有三種循環(huán)格式:for(),while(),do。。while()
1,while循環(huán)格式為:
while(E){
while_uu2; Statements
}]其含義是:首先檢查循環(huán)條件E是否為真。如果e為true,則在循環(huán)體語(yǔ)句中執(zhí)行while,否則,結(jié)束while循環(huán)??梢钥闯?,當(dāng)e第一次為false時(shí),while的周期數(shù)為0,即:這樣,最小執(zhí)行次數(shù)為0。
2。do..的格式。。while循環(huán)是:do{
dowhileuu語(yǔ)句
}while(E)//注意這里的分號(hào)
!其含義是:先執(zhí)行do in the loop body uwhile uu語(yǔ)句,然后判斷e是否為false。如果為false,則結(jié)束while循環(huán)。如果是真的,繼續(xù)循環(huán)。如您所見(jiàn),當(dāng)e第一次為false時(shí),請(qǐng)這樣做,最小執(zhí)行次數(shù)為1,或者至少執(zhí)行一次。
C語(yǔ)言do while怎么使用?
1. 首先,讓我們定義幾個(gè)變量
int i,a
i=0A=5
如圖所示:
2。do while的基本結(jié)構(gòu)是
do
{
}while(),循環(huán)語(yǔ)句是用大括號(hào)寫的。如圖所示:
3。如果while語(yǔ)句中的內(nèi)容為true,則執(zhí)行while循環(huán)。如果不是true,則while循環(huán)將結(jié)束。例如,寫一個(gè)>I;注意while()后面的分號(hào)。如圖所示:
4。例如,我們?cè)趌oop語(yǔ)句中寫I來(lái)執(zhí)行I的自動(dòng)遞增操作,如圖
5/此時(shí),我們寫下output語(yǔ)句??碔值的變化。如圖所示:
6。當(dāng)我們執(zhí)行語(yǔ)句時(shí),會(huì)發(fā)現(xiàn)I的輸出值是5;當(dāng)while中的循環(huán)不成立時(shí),循環(huán)結(jié)束。如圖所示: