新聞中心
C語言中g(shù)oto的用法
goto

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供潁泉網(wǎng)站建設(shè)、潁泉做網(wǎng)站、潁泉網(wǎng)站設(shè)計、潁泉網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、潁泉企業(yè)網(wǎng)站模板建站服務(wù),十年潁泉做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
用在內(nèi)層循環(huán)中比較合適,
用
break
只能跳出內(nèi)層循環(huán),
而
goto
可以直接跳出最外層循環(huán),在合理的地方使用就可以了。
不要頻繁的使用goto,過多的使用goto語句,會使程序混亂
從理論上講,goto語 句是沒有必要的,實踐中不使用goto語句也可以很容易地寫出代碼
但是,在某些場合下goto語句還是用得著的。
最常見的用法是終止程序在某些深度嵌套 的結(jié)構(gòu)中的處理過程,
例如一次跳出兩層或多層循環(huán)。這種情況下使用break語句是不能達 到目的的,
它只能從最內(nèi)層循環(huán)退出到上一級的循環(huán)
所有使用了goto語句的程序代碼都能改寫成不帶goto語句的程序,
但可能會增加一些 額外的重復(fù)測試或變量
標(biāo)號的命名同變量命名的形式相同,標(biāo)號的后面要緊跟一個冒號。
標(biāo)號可以位于對應(yīng)的 goto語句所在函數(shù)的任何語句的前面。標(biāo)號的作用域是整個函數(shù)。
goto 是轉(zhuǎn)向語句
goto 標(biāo)號;
例
int x=1;
biaohao:
x=x+1;
if(x100)
goto biaohao;
cout"x=100"endl;
//當(dāng)x小于100,執(zhí)行if 后面的goto語句,
于是轉(zhuǎn)跳到biaohao處執(zhí)行biaohao后面的語句x=x+1,接著if語句,
如此反復(fù)。。。。。。,
直到x=100 if語句括號表達式為假不執(zhí)行后面的goto語句,
于是跳過執(zhí)行cout語句輸出x=100這幾個字符
C語言goto 的使用方法
goto 語句是最經(jīng)典的計算機語句,叫“無條件轉(zhuǎn)向語句”,執(zhí)行到它,無條件地跳到指定的標(biāo)號所在地。
下面程序讀入fin_list的一行,每一行是一個文件名。
[許多語句] 用來處理一個文件,處理完了goto entrance 又回到開始,再讀一個文件名。讀到fin_list結(jié)束,goto No_More,跳到No_More:
退出這段程序。
entrance:
if ( fgets(one_line,200,fin_list) ==NULL) goto No_More;
....[許多語句]
....
goto entrance;
No_More: fclose(fin_list);
轉(zhuǎn)向語句與標(biāo)號配合使用。函數(shù)塊里,標(biāo)號名不可重名,(標(biāo)號名如同路標(biāo))。例如,可以有多個 goto No_More 語句,但只可有 一個No_More:;
轉(zhuǎn)向語句只能從程序內(nèi)層轉(zhuǎn)向同一層或外層,但不可轉(zhuǎn)向它的內(nèi)層。
例如(正確的):
for (j=0;jn;j++){
Lab1:;
for (i=0;im;i++){
...
if (..) goto Lab1;
if (..) goto Lab2;
if (..) goto Lab3;
if (..) goto Lab4;
Lab2:;
...
}
...
Lab3:;
}
Lab4:;
例如(錯的):
for (j=0;jn;j++){
if () goto Lab1:;
for (i=0;im;i++){
...
Lab1:;
...
}};
goto 不可跳出自己在的函數(shù)塊。
C語言中g(shù)oto語句的用法??舉例來說。
goto語句可以使程序在沒有任何條件的情況下跳轉(zhuǎn)到指定的位置,所以goto語句又被稱為是無條件跳轉(zhuǎn)語句。
它的語法如下
goto label;
//其它代碼
label:
其中,label為我們自己定義的一個標(biāo)簽,定義的規(guī)則與變量的命名相同,它的位置是不固定的,它可以寫在goto語句的后面,也可以寫在它的前面,然而goto語句只能在一個函數(shù)內(nèi)部跳轉(zhuǎn),它并不允許跳轉(zhuǎn)出一個函數(shù)外部。
int day = 1;
loop:
if (day = 31)
{
printf("%d\n", day);
day++;
goto loop;
}
上面程序就是利用了goto和if語句來實現(xiàn)了循環(huán)功能,它與while實現(xiàn)的循環(huán)功能一樣,其中l(wèi)oop為我們定義的一個label(標(biāo)簽)。
擴展資料:
使用goto語句的建議
1) 使用goto語句只能goto到同一函數(shù)內(nèi),而不能從一個函數(shù)里goto到另外一個函數(shù)里。
2) 使用goto語句在同一函數(shù)內(nèi)進行g(shù)oto時,goto的起點應(yīng)是函數(shù)內(nèi)一段小功能的結(jié)束處,goto的目的label處應(yīng)是函數(shù)內(nèi)另外一段小功能的開始處。
3) 不能從一段復(fù)雜的執(zhí)行狀態(tài)中的位置goto到另外一個位置,比如,從多重嵌套的循環(huán)判斷中跳出去就是不允許的。
4)應(yīng)該避免向兩個方向跳轉(zhuǎn)。這樣最容易導(dǎo)致"面條代碼"。
參考資料來源:百度百科-goto語句
C語言goto語句如何使用?
goto語句使用:
1、C#語言中
using System;
using static System.Console;
class Program
{
public static Int32 Main(String[]args){
int n=0;
WriteLine("input a string:\n");
loop:if(Read()!='\r'){
n++;
goto loop;
}
WriteLine("{0}",n);
return 0;
}
}
2、C語言中
統(tǒng)計從鍵盤輸入一行字符的個數(shù)。
#includelt;stdio.hgt;
int n=0;
int main(void){
printf("input a string:");
loop:if(getchar()!='\n'){
n++;
goto loop;
}
printf("output:%d\n",n);
}
例如輸入:abcdefghijklmnopqrstuvwxyz
然后回車Enter
輸出:26
本例用if語句和goto語句構(gòu)成循環(huán)結(jié)構(gòu)。當(dāng)輸入字符不為'\n'時即執(zhí)行n++進行計數(shù)。
然后轉(zhuǎn)移至if語句循環(huán)執(zhí)行,直至輸入字符為'\n'才停止循環(huán)。
3、匯編語言中
goto語句與匯編語言里面的jmp指令相同,(無條件轉(zhuǎn)移)
1+2+3........+8+9+10
NASM描述:
mov ax,1
mov bx,0
start:add bx,ax
inc ax
cmp ax,11;比較指令
jzend;零轉(zhuǎn)移
jmp start
end:
;
;start:end:是標(biāo)號
Pascal
格式gotolt;標(biāo)號gt;;
其中標(biāo)號需要申請,在程序開頭寫labellt;標(biāo)號1gt;,lt;標(biāo)號2gt;,……;
其中,標(biāo)號必須為四位以內(nèi)的正整數(shù)。
在該段落內(nèi)還需要有l(wèi)t;標(biāo)號gt;:語句表示將要轉(zhuǎn)向的方向。
4、delphi中
//Goto語句用在跳轉(zhuǎn)行號,可以跳轉(zhuǎn)到當(dāng)前結(jié)構(gòu)層內(nèi)任意位置.
//必須在聲明處用label關(guān)鍵字聲明行號.
//由于Goto語句會破壞程序的結(jié)構(gòu),不推薦使用.
var
a,b:Integer;
label
X,Y;
begin
if agt;b then
goto X
else
goto Y;
X:
WriteLn('agt;b');
Y:
WriteLn('bgt;a');
end;
擴展資料:
goto語句無條件轉(zhuǎn)移語句,其一般格式如下:goto語句標(biāo)號;其中語句標(biāo)號是按標(biāo)識符規(guī)定書寫的符號,放在某一語句行的前面,標(biāo)號后加冒號(:)。語句標(biāo)號起標(biāo)識語句的作用,與goto語句配合使用。
如:label:i++;
loop:while(xlt;7);
goto:loop
C語言不限制程序中使用標(biāo)號的次數(shù),但各標(biāo)號不得重名。goto語句的語義是改變程序流向,轉(zhuǎn)去執(zhí)行語句標(biāo)號所標(biāo)識的語句。
goto語句通常與條件語句配合使用??捎脕韺崿F(xiàn)條件轉(zhuǎn)移,構(gòu)成循環(huán),跳出循環(huán)體等功能。
但是,在結(jié)構(gòu)化程序設(shè)計中一般不主張使用goto語句,以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。
參考資料來源:
百度百科——goto語句
C語言如何正確使用Goto語句?
goto語句以及用goto語句構(gòu)成循環(huán)
goto語句是一種無條件轉(zhuǎn)移語句, 與BASIC中的goto語句相似。goto 語句的使用格式為:
goto 語句標(biāo)號;
其中標(biāo)號是一個有效的標(biāo)識符,這個標(biāo)識符加上一個“:”一起出現(xiàn)在函數(shù)內(nèi)某處, 執(zhí)行g(shù)oto語句后,程序?qū)⑻D(zhuǎn)到該標(biāo)號處并執(zhí)行其后的語句。另外標(biāo)號必須與goto語句同處于一個函數(shù)中,但可以不在一個循環(huán)層中。通常goto語句與if條件語句連用, 當(dāng)滿足某一條件時, 程序跳到標(biāo)號處運行。
goto語句通常不用,主要因為它將使程序?qū)哟尾磺?且不易讀,但在多層嵌套退出時, 用goto語句則比較合理。
【例6.1】用goto語句和if語句構(gòu)成循環(huán),
main()
{
int i,sum=0;
i=1;
loop: if(i=100)
{sum=sum+i;br/br/ i++;br/br/ goto loop;}
printf("%d\n",sum);
}
有什么加我387700806。切記不要亂用。少用!
本文題目:c語言goto語句用法,c語言goto用法舉例
文章路徑:http://www.dlmjj.cn/article/hscsoj.html


咨詢
建站咨詢
