C語言基礎 goto語句

2021-08-17 05:12:35 字數 1081 閱讀 8103

        在本節中我們來學習乙個比較有爭議的語句goto,goto語句可以使程式在沒有任何條件的情況下跳轉到指定的位置,所以goto語句又被稱為是無條件跳轉語句。它的語法如下

goto label;

//其它**

label:

其中,label為我們自己定義的乙個標籤,定義的規則與變數的命名相同,它的位置是不固定的,它可以寫在goto語句的後面,也可以寫在它的前面,然而goto語句只能在乙個函式內部跳轉,它並不允許跳轉出乙個函式外部。

當然,很多書籍上在提及goto語句時都會提醒讀者並不推薦使用它。但我們還是推薦讀者可以合理的使用goto語句。

我們可以通過goto語句來實現乙個類while語句的迴圈功能:

int day = 1;

loop:

if (day <= 31)

上面程式就是利用了goto和if語句來實現了迴圈功能,它與while實現的迴圈功能一樣,其中loop為我們定義的乙個label(標籤)。

接下來我們再來看乙個關於goto語句合理使用的例子,在看這個例子之前我們先來看看乙個在雙迴圈中根據條件跳出的普通實現

int found = 0;

for (int i = 0; i < n && !found; i++)

}}if (found)

由於break;語句只能跳出當前迴圈,不能跳出多層巢狀迴圈之外,所以我們只能用found變數來做為迴圈巢狀中的結束條件。

現在我們可以使用goto來完成這個功能:

for (int i = 0; i < n; i++)

}}found:

// do something

可以看到使用了goto語句的程式明顯比使用雙迴圈通過條件跳出的簡潔了。 

另外還有一些關於goto語句的用法,有興趣的讀者可以請參見《合理使用goto》。

我們在這裡所說的建議大家使用是要合理的使用,而不是濫用。goto語句可以在程式中任意的跳轉到指定的標籤位置,所以如果用的不好可能會破壞程式的邏輯性和安全性。

C語言 goto語句

goto語句又叫無條件轉移語句,先看乙個例子 include void main printf hello gotoflag printf nihao 輸出 nihao 可以看出在執行 goto gotoflag 語句之後直接跳轉到gotoflag printf nihao gotoflag 為標記...

goto 語句 C語言

c語言 goto語句又叫無條件轉移語句,先看乙個例子 include void main printf hello gotoflag printf nihao 輸出的結果為 nihao 可以看出在執行 goto gotoflag 語句之後直接跳轉到gotoflag printf nihao goto...

C語言禁術 goto語句

goto語句是一種無條件轉移語句,goto 語句的使用格式為 goto 語句標號 其中標號是乙個有效的識別符號,這個識別符號加上乙個 冒號 一起出現在函式內某處,執行goto語句後,程式將跳轉到該標號處並執行其後的語句。另外標號必須與goto語句同處於乙個函式中,但可以不在乙個迴圈層中。通常goto...