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

C語言 goto語句

提問人:劉團圓發(fā)布時間:2020-11-30

goto語句被稱為無條件轉(zhuǎn)移語句,它的一般形式為: 

    goto標(biāo)號;

goto語句的功能是使程序執(zhí)行流程轉(zhuǎn)到標(biāo)號對應(yīng)的語句處,并從該語句處繼續(xù)執(zhí)行。標(biāo)號的命名遵循標(biāo)識符的命名規(guī)則。用標(biāo)號標(biāo)注語句的形式為:

標(biāo)號:語句;

一般可以使用goto語句和if語句結(jié)合實現(xiàn)循環(huán)。

【例題】goto語句舉例

利用goto語句計算: 1-1/3+1/5-1/7…的前n(n>3)項之和,n由用戶輸入。

算法分析:

這是累加問題,核心是計算s=s+t。假設(shè)將累加項表達式t用循環(huán)次數(shù)i來表示,那么T=1/(2*i-1)。

本題中,每個累加項的符號是不一樣的,第1項、第3項、第5項……是正號;而第2項、第4項、第6 項……是負號,可以設(shè)置一個變量f來控制符號的變化,f初值為1,每循環(huán)一次,使f=-f,從而達到改變符號的目的。

流程圖如圖所示。

image.png

從流程圖中可以看出,使用goto語句和if語句組成一個循環(huán)的形式,循環(huán)體就是標(biāo)號a1和if語句括起來的部分。

程序如下:

#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í)行時,屏幕上顯示提示信息:

    input n:

輸入數(shù)據(jù):

    3

輸出結(jié)果為:

    s=0.86667


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

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