C語(yǔ)言 goto語(yǔ)句
goto語(yǔ)句被稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,它的一般形式為:
goto標(biāo)號(hào);
goto語(yǔ)句的功能是使程序執(zhí)行流程轉(zhuǎn)到標(biāo)號(hào)對(duì)應(yīng)的語(yǔ)句處,并從該語(yǔ)句處繼續(xù)執(zhí)行。標(biāo)號(hào)的命名遵循標(biāo)識(shí)符的命名規(guī)則。用標(biāo)號(hào)標(biāo)注語(yǔ)句的形式為:
標(biāo)號(hào):語(yǔ)句;
一般可以使用goto語(yǔ)句和if語(yǔ)句結(jié)合實(shí)現(xiàn)循環(huán)。
【例題】goto語(yǔ)句舉例
利用goto語(yǔ)句計(jì)算: 1-1/3+1/5-1/7…的前n(n>3)項(xiàng)之和,n由用戶輸入。
算法分析:
這是累加問(wèn)題,核心是計(jì)算s=s+t。假設(shè)將累加項(xiàng)表達(dá)式t用循環(huán)次數(shù)i來(lái)表示,那么T=1/(2*i-1)。
本題中,每個(gè)累加項(xiàng)的符號(hào)是不一樣的,第1項(xiàng)、第3項(xiàng)、第5項(xiàng)……是正號(hào);而第2項(xiàng)、第4項(xiàng)、第6 項(xiàng)……是負(fù)號(hào),可以設(shè)置一個(gè)變量f來(lái)控制符號(hào)的變化,f初值為1,每循環(huán)一次,使f=-f,從而達(dá)到改變符號(hào)的目的。
流程圖如圖所示。
從流程圖中可以看出,使用goto語(yǔ)句和if語(yǔ)句組成一個(gè)循環(huán)的形式,循環(huán)體就是標(biāo)號(hào)a1和if語(yǔ)句括起來(lái)的部分。
程序如下:
#include <stdio.h>
main ()
{
int i=2,f=l,n;
double s=1,t;
printf("input n:\n");
scanf("%d",&n);
al:
t=1.0/(2*i-l);
f=-f;
s = s+f;
i++;
if(i<=n) /*如果i小于n,轉(zhuǎn)到前面繼續(xù)執(zhí)行*/
goto al;
printf("s=%7.5f\n",s);
}
程序執(zhí)行時(shí),屏幕上顯示提示信息:
input n:
輸入數(shù)據(jù):
3
輸出結(jié)果為:
s=0.86667
點(diǎn)擊加載更多評(píng)論>>