Goto

指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。在機器碼級別,goto是一種分支的形式。

批處理內部命令

指定跳轉到標籤,找到標籤後,程式將處理從下一行開始的命令。

語法:goto label (label是參數,指定所要轉向的批處理程式中的行)

行用 :label 表示

舉例

1.bat

:begin

dir

goto begin

執行1.bat的效果是不斷地執行DIR命令

高級程式語言

C語言中goto語句的用法

Sample:(2005MSDN上的例子)

#include

int main()

{

int i, j;

for ( i = 0; i < 10; i++ )

{

printf( "Outer loop executing. i = %d\n", i );

for ( j = 0; j < 3; j++ )

{

printf( " Inner loop executing. j = %d\n", j );

if ( i == 5 )

goto stop;

}

}

/* This message does not print: */

printf( "Loop exited. i = %d\n", i );

stop: printf( "Jumped to stop. i = %d\n", i );//stop: 就是標籤

return 0;

}

Pascal語言中的Goto語句

goto <標號>;

其中標號需要申請,在對應的過程的申請的位置寫label <標號>;其中,標號必須為byte型整數。

在該段落內還需要有<標號>:表示將要轉向的方向。

goto語句的發展歷程

問題起源:

60年代中期以後,計算機硬體技術日益進步,計算的存貯容量、運算速度和可靠性明顯提高,生產硬體的成本不斷降低。計算機價格的下跌為它的廣泛套用創造了極好的條件。在這種形勢下,迫切要求計算機軟體也能與之相適應。因而,一些開發大型軟體系統的要求提了出來。然而軟體技術的進步一直未能滿足形勢發展的需要,在大型軟體的開發過程中出現了複雜程度高、研製周期長、正確性難以保證的三大難題。遇到的問題找不到解決辦法,致使問題堆積起來,形成了人們難以控制的局面,出現了所謂的“軟體危機”。為了克服這一危機,一方面需要對程式設計方法、程式的正確性和軟體的可靠性等問題進行系列的研究;另一方面,也需要對軟體的編制、測試、維護和管理的方法進行研究,從而產生了程式設計方法學。

goto語句是有害的觀點:

1968年,E·W·代克斯特拉首先提出“GOTO語句是有害的”論點,向傳統程式設計方法提出了挑戰,從而引起了人們對程式設計方法討論的普遍重視。

goto語句的爭論:

在60年代末和70年代初,關於GOTO語句的用法的爭論比較激烈。主張從高級程式語言中去掉GOTO語句的人認為,GOTO語句是對程式結構影響最大的一種有害的語句,他們的主要理由是:GOTO語句使程式的靜態結構和動態結構不一致,從而使程式難以理解,難以查錯。去掉GOTO語句後,可直接從程式結構上反映程式運行的過程。這樣,不僅使程式結構清晰,便於理解,便於查錯,而且也有利於程式的正確性證明。

持反對意見的人認為,GOTO語句使用起來比較靈活,而且有些情形能提高程式的效率。若完全刪去GOTO語句,有些情形反而會使程式過於複雜,增加一些不必要的計算量。

1974年,D·E·克努斯對於GOTO語句爭論作了全面公正的評述,其基本觀點是:不加限制地使用GOTO語句,特別是使用往回跳的GOTO語句,會使程式結構難於理解,在這種情形,應儘量避免使用GOTO語句。但在另外一些情況下,為了提高程式的效率,同時又不至於破壞程式的良好結構,有控制地使用一些GOTO語句也是必要的。用他的話來說就是:“在有些情形,我主張刪掉GOTO語句;在另外一些情形,則主張引進GOTO語句。”從此,使這場長達10年之久的爭論得以平息。

後來,G·加科皮尼和C·波姆從理論上證明了:任何程式都可以用順序、分支和重複結構表示出來。這個結論表明,從高級程式語言中去掉GOTO語句並不影響高級程式語言的編程能力,而且編寫的程式的結構更加清晰。

goto語句的結果:

在C/C++等高級程式語言中保留了goto語句,但被建議不用或少用。在一些更新的高級程式語言,如Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使 用,使程式簡潔易讀;儘管如此後來的c#還是支持goto語句的,goto語句一個好處就是可以保證程式存在唯一的出口,避免了過於龐大的if嵌套。

使用goto語句應注意的問題:

goto語句不能跨越變數的定義向前跳轉:

//......

goto end;

int ix=10;

end:

ix=42;//會出現ix未定義的情形

而向後跳過已經執行的變數定義語句是合法的。因為向後跳回到一個變數定義之前,系統在撤銷這個變數,然後重新創建它:

//..........

begin:

int sz=get_size();

if(sz<=0) goto begin;

執行goto語句時,首先撤銷變數sz,然後程式的控制流程跳轉到帶begin:標號的語句繼續執行,再次重新創建和初始化變數sz。

GOTO手錶

郭采潔代言郭采潔代言

GOTO為台灣品牌

所有機芯採用日本原裝機芯

價格在3000-8000台幣不等,屬於台灣中檔手錶,但因請王心凌、郭采潔代言該品牌手錶,使其在台灣具有一定的知名度。

「GOTO」以簡單的英文辭彙GOTO為名,表款采中性訴求,強調個性化設計與流行色彩元素相結合,創造出絕對繽紛時尚的流行脕表,表款設計與歐美流行同步零時差,深受年輕族群喜愛,LOGO以寫意的橘、紅、綠三色曲線構成,分別傳達出「自由、自在、自然」的品牌精神,一種敢作敢為、勇往直前的價值觀!為新世代的生活態度發聲!也正是「GOTO」my rules--做自己的精神寫照!

相關詞條

相關搜尋

熱門詞條

聯絡我們