- 高質量程序設計指南:C++/C語言
- 林銳 韓永泉編著
- 349字
- 2019-01-09 14:09:01
4.12 goto/continue/break語句
自從提倡結構化程序設計以來,goto就成了有爭議的語句。首先,由于goto語句可以實現無條件跳轉,如果不加限制,它的確會破壞結構化程序設計風格。其次,goto語句經常帶來錯誤和隱患。它可能跳過某些對象的構造、變量的初始化、重要的計算等語句,如示例4-16所示。
示例4-16
goto state; String s1,s2; // 被goto跳過 int sum=0; // 被goto跳過 … state: …
如果編譯器不能發覺此類錯誤,每用一次goto語句都可能留下隱患。
很多人建議廢除C++/C的goto語句,以絕后患。但老實說,錯誤是程序員自己造成的,不是goto的過錯。(你不用它,難道它還會跳出來騷擾你不成?)goto語句至少有一處可顯神通,它能從多層嵌套的循環體中“嗖”地一下子跳到外面,用不著寫很多次的break語句,從而提高了效率,見示例4-17。
示例4-17
for(…) {… for(…) {… for(…) {… goto error; } } } error:// 錯誤處理代碼
所以我們主張少用、慎用goto語句,而不是禁用。
推薦閱讀
- Go Web編程
- Spring Cloud Alibaba核心技術與實戰案例
- Software Defined Networking with OpenFlow
- C語言程序設計習題解析與上機指導(第4版)
- PHP基礎案例教程
- VMware vSphere 6.7虛擬化架構實戰指南
- 64位匯編語言的編程藝術
- C語言程序設計立體化案例教程
- Java SE實踐教程
- Cocos2d-x Game Development Blueprints
- Android Game Programming by Example
- Mastering HTML5 Forms
- Hacking Android
- Go語言入門經典
- Game Programming using Qt 5 Beginner's Guide