在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手冊一樣的:
當你需要查閱某個函數用法以及函數所在的頭文件的時候,就可以訪問這個網站來查閱,它是學習C語言的好幫手~
還有一個C和C++的參考手冊:
https://zh.cppreference.com/w/%E9%A6%96%E9%A1%B5
一個好的就是它有中文版本,可以作為參考手冊供大家查閱使用~