重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
goto 語句是最經典的計算機語句,叫“無條件轉向語句”,執行到它,無條件地跳到指定的標號所在地。
創新互聯一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發展,成交一個客戶多一個朋友!為您提供成都網站制作、成都網站建設、外貿營銷網站建設、成都網頁設計、小程序開發、成都網站開發、成都網站制作、成都軟件開發、app軟件定制開發是成都本地專業的網站建設和網站設計公司,等你一起來見證!
下面程序讀入fin_list的一行,每一行是一個文件名。
[許多語句] 用來處理一個文件,處理完了goto entrance 又回到開始,再讀一個文件名。讀到fin_list結束,goto No_More,跳到No_More:
退出這段程序。
entrance:
if ( fgets(one_line,200,fin_list) ==NULL) goto No_More;
....[許多語句]
....
goto entrance;
No_More: fclose(fin_list);
轉向語句與標號配合使用。函數塊里,標號名不可重名,(標號名如同路標)。例如,可以有多個 goto No_More 語句,但只可有 一個No_More:;
轉向語句只能從程序內層轉向同一層或外層,但不可轉向它的內層。
例如(正確的):
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 不可跳出自己在的函數塊。
1、C語言中goto又叫無條件轉移語句,可以讓程序直接跳轉到任意標記的位置。用法就是“goto?label……label:”。下面用一個示例來演示具體的用法,這里先新建一個C語言的程序文件,演示使用的是Visual?Studio軟件作為開發工具:
2、輸入goto語句應用代碼,這里先定義兩個變量a和b,然后用printf函數打印兩句話,直接用goto語句強制跳轉到打印b語句的end標記位置,此時a的打印就不會執行了:
3、編譯執行程序,按下crtl+F5打開命令行,就可以看到執行的結果,打印出了b語句,和預期的結果一樣。以上就是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語言中
統計從鍵盤輸入一行字符的個數。
#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語句構成循環結構。當輸入字符不為'\n'時即執行n++進行計數。
然后轉移至if語句循環執行,直至輸入字符為'\n'才停止循環。
3、匯編語言中
goto語句與匯編語言里面的jmp指令相同,(無條件轉移)
1+2+3........+8+9+10
NASM描述:
mov ax,1
mov bx,0
start:add bx,ax
inc ax
cmp ax,11;比較指令
jzend;零轉移
jmp start
end:
;
;start:end:是標號
Pascal
格式gotolt;標號gt;;
其中標號需要申請,在程序開頭寫labellt;標號1gt;,lt;標號2gt;,……;
其中,標號必須為四位以內的正整數。
在該段落內還需要有lt;標號gt;:語句表示將要轉向的方向。
4、delphi中
//Goto語句用在跳轉行號,可以跳轉到當前結構層內任意位置.
//必須在聲明處用label關鍵字聲明行號.
//由于Goto語句會破壞程序的結構,不推薦使用.
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語句無條件轉移語句,其一般格式如下:goto語句標號;其中語句標號是按標識符規定書寫的符號,放在某一語句行的前面,標號后加冒號(:)。語句標號起標識語句的作用,與goto語句配合使用。
如:label:i++;
loop:while(xlt;7);
goto:loop
C語言不限制程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向,轉去執行語句標號所標識的語句。
goto語句通常與條件語句配合使用。可用來實現條件轉移,構成循環,跳出循環體等功能。
但是,在結構化程序設計中一般不主張使用goto語句,以免造成程序流程的混亂,使理解和調試程序都產生困難。
參考資料來源:
百度百科——goto語句
goto語句是一種無條件轉移語句,與BASIC中的goto語句相似。goto語句的使用格式為:goto 標號;
其中標號是Turbo C2.0中一個有效的標識符,這個標識符加上一個:一起出現在函數內某處,執行 goto
語句后,程序將跳轉到該標號處并執行其后的語句。標號既然是一個標識符,也就要滿足標識符的命名規則。另外標號必須與goto 語句同處于一個函數中,但可以不在一個循環層中。通常goto語句與if條件語句連用,當滿足某一條件時,程序跳到標號處運行。goto語句通常不用,主要因為它將使程序層次不清,且不易讀,但在多層嵌套退出時,用goto語句則比較合理。