轉(zhuǎn)移語(yǔ)句
程序中的語(yǔ)句通?偸前错樞蚍较, 或按語(yǔ)句功能所定義的方向執(zhí)行的。如果需要改變程序的正常流向, 可以使用本小節(jié)介紹的轉(zhuǎn)移語(yǔ)句。在C語(yǔ)言中提供了4種轉(zhuǎn)移語(yǔ)句:
goto,break, continue和return。
其中的return語(yǔ)句只能出現(xiàn)在被調(diào)函數(shù)中, 用于返回主調(diào)函數(shù),我們將在函數(shù)一章中具體介紹。 本小節(jié)介紹前三種轉(zhuǎn)移語(yǔ)句。
1.goto語(yǔ)句
goto語(yǔ)句也稱(chēng)為無(wú)條件轉(zhuǎn)移語(yǔ)句,其一般格式如下: goto 語(yǔ)句標(biāo)號(hào); 其中語(yǔ)句標(biāo)號(hào)是按標(biāo)識(shí)符規(guī)定書(shū)寫(xiě)的符號(hào), 放在某一語(yǔ)句行的
前面,標(biāo)號(hào)后加冒號(hào)(:)。語(yǔ)句標(biāo)號(hào)起標(biāo)識(shí)語(yǔ)句的作用,與goto 語(yǔ)句配合使用。
如: label: i++;
loop: while(x<7);
C語(yǔ)言不限制程序中使用標(biāo)號(hào)的次數(shù),但各標(biāo)號(hào)不得重名。goto語(yǔ)句的語(yǔ)義是改變程序流向, 轉(zhuǎn)去執(zhí)行語(yǔ)句標(biāo)號(hào)所標(biāo)識(shí)的語(yǔ)句。
goto語(yǔ)句通常與條件語(yǔ)句配合使用?捎脕(lái)實(shí)現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能。
但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用goto語(yǔ)句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。
統(tǒng)計(jì)從鍵盤(pán)輸入一行字符的個(gè)數(shù)。
#include"stdio.h"
void main(){
int n=0;
printf("input a string\n");
loop: if(getchar()!='\n')
{ n++;
goto loop;
}
printf("%d",n);
}
本例用if語(yǔ)句和goto語(yǔ)句構(gòu)成循環(huán)結(jié)構(gòu)。當(dāng)輸入字符不為'\n'時(shí)即執(zhí)行n++進(jìn)行計(jì)數(shù),然后轉(zhuǎn)移至if語(yǔ)句循環(huán)執(zhí)行。直至輸入字符為'\n'才停止循環(huán)。
break語(yǔ)句
break語(yǔ)句只能用在switch 語(yǔ)句或循環(huán)語(yǔ)句中, 其作用是跳出switch語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的程序。由于break語(yǔ)句的轉(zhuǎn)移方向是明確的,所以不需要語(yǔ)句標(biāo)號(hào)與之配合。break語(yǔ)句的一般形式為: break; 上面例題中分別在switch語(yǔ)句和for語(yǔ)句中使用了break 語(yǔ)句作為跳轉(zhuǎn)。使用break語(yǔ)句可以使循環(huán)語(yǔ)句有多個(gè)出口,在一些場(chǎng)合下使編程更加靈活、方便。
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語(yǔ)言備考:C語(yǔ)言/C++編譯過(guò)程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |