如果函數(shù)定義是: int func(...),那么寫return 0;

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括齊齊哈爾網(wǎng)站建設(shè)、齊齊哈爾網(wǎng)站制作、齊齊哈爾網(wǎng)頁制作以及齊齊哈爾網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,齊齊哈爾網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到齊齊哈爾省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
如果函數(shù)定義是: void func(...),那么寫return;
如果僅想跳出循環(huán),寫break;
程序中途跳出,和結(jié)束是兩個(gè)不同的概念。
1 要使程序中途跳出,可以使用return語句,跳出該函數(shù)。
如
int?fun(int?n)
{
int?i;
if(n0)?return?-1;//?在n為負(fù)數(shù)下,提前退出該函數(shù)。?
//執(zhí)行正常功能。?
for(i=0;in;i++)
printf("%d?",?i);
}
2 要使程序提前結(jié)束, 可以調(diào)用exit()函數(shù)。?
如
int?fun(int?n)
{
int?i;
if(n0)?exit(-1);//?在n為負(fù)數(shù)下,提前結(jié)束程序。?
//執(zhí)行正常功能。?
for(i=0;in;i++)
printf("%d?",?i);
}
3 二者區(qū)別:
a) 使用exit函數(shù),會結(jié)束整個(gè)程序。 而使用return只是結(jié)束當(dāng)前函數(shù),還會到主調(diào)函數(shù)處繼續(xù)運(yùn)行。
b) 在main函數(shù)中使用return語句,等效于調(diào)用exit函數(shù),同樣會結(jié)束程序。
c) 調(diào)用exit函數(shù)時(shí),需要引用頭文件stdlib.h。
C/C++中,用return可以從任何子函數(shù)中退出返回到主調(diào)函數(shù),而exit()是用來退出程序返回操作系統(tǒng)的。至于怕把{}搞混了,那你是不可能回避的,因?yàn)閧}是C/C++的重要語句成份,而且寫C/C++是提倡多用{}的——就是說不要輕易省掉,必要時(shí)還可以多加。可見,程序員們的經(jīng)驗(yàn)是{}不僅不會搞混,而且有助于代碼的閱讀!
函數(shù)都是并列關(guān)系,不存在一個(gè)嵌套另一個(gè)的問題,只能是一個(gè)調(diào)用另一個(gè),在其中又調(diào)用另一個(gè),一層層調(diào)用,正常情況都只有一個(gè)返回出口,也是一層一層返回,不能跳過。
c語言中提前結(jié)束一個(gè)子函數(shù),可以用return 語句返回。
實(shí)例:
//用于除法,a是被除數(shù),b是除數(shù),當(dāng)b為0的時(shí)候不能做除法,此時(shí)可以將函數(shù)提前返回,不做除法運(yùn)算。函數(shù)定義如下:
int func(int a,int b)
{
if(b==0){
return false;
}
return a/b;
}
C++可以通過異常處理的throw和catch來實(shí)現(xiàn)從子函數(shù)的子函數(shù)直接返回主函數(shù),匯編語言可以用jmp指令跳轉(zhuǎn)實(shí)現(xiàn)這個(gè)需求。
C語言主要靠函數(shù)調(diào)用和return在函數(shù)之間切換,很難做到在多層調(diào)用中直接返回主函數(shù)。雖然goto語句可以無條件跳轉(zhuǎn),但是必須在同一個(gè)函數(shù)中使用。
因此解決的方法也是用一個(gè)特殊的值作為需要返回的標(biāo)志,然后在兩層調(diào)用函數(shù)中都遇到該值就返回,但是這個(gè)方法也有兩個(gè)前提:
1)你的兩個(gè)子函數(shù)都是由返回值的函數(shù)
2)你選擇的特殊值和函數(shù)正常的返回的取值不會沖突,不會引起二義性。
因此建議你的這個(gè)問題還是用C++ 的異常去解決比較好。
分享名稱:c語言跳出子函數(shù)的語句 c++ 跳出函數(shù)
文章起源:http://chinadenli.net/article14/hjocge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、定制網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)