C語言 goto 語句正確用法


 

在C語言中,有一個神奇的語句,那就是goto語句,它可以實現代碼的任意跳轉,看上去很好用,但是實際上用的不多,因為使用它可能會導致代碼的錯亂,所以實際應用中你會發現使用goto語句的時候不多,最能在B站上系統學習C語言的時候,看到老師對goto語句的適用方法描述例子寫的不錯,所以分享給大家。

菜鳥教程中對goto語句的描述:

C 語言中的 goto 語句允許把控制無條件轉移到同一函數內的被標記的語句。

注意:在任何編程語言中,都不建議使用 goto 語句。因為它使得程序的控制流難以跟蹤,使程序難以理解和難以修改。任何使用 goto 語句的程序可以改寫成不需要使用 goto 語句的寫法。

goto語句例子:

1 #include <stdio.h>
2 int main() { 3     printf("hello bit\n"); 4     goto again; 5     printf("你好\n"); 6 again: 7     printf("hehe\n"); 8     return 0; 9 }

運行結果:跳過了printf("你好\n"); 這個語句

 

goto語句盡量不要使用,但最常見是在終止某些深度嵌套的結構處理過程中使用,例如想要實現一次跳出兩層或多層循環,這種情況使用break是達不到目的,因為break只能退出到上一層的循環。但是,你又需要跳出多層循環的時候,這時候就可以使用goto語句了。

goto語句真正適用的場景如下: 

    for(...) for(...) { for(...) { if(disaster) goto error; } } ... error: if(disaster) // 處理錯誤情況

 

此外,推薦大家一個學習C/C++語言很好使用的網站資料,就像使用matlab的時候你可以使用help手冊一樣的:

http://www.cplusplus.com/

當你需要查閱某個函數用法以及函數所在的頭文件的時候,就可以訪問這個網站來查閱,它是學習C語言的好幫手~

還有一個C和C++的參考手冊:

https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5

一個好的就是它有中文版本,可以作為參考手冊供大家查閱使用~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM