位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > C語(yǔ)言 > 問(wèn)題詳情

C語(yǔ)言 goto語(yǔ)句

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-30

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)的目的。

流程圖如圖所示。

image.png

從流程圖中可以看出,使用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


繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部