理解goto語句的替代方式分析

          時間:2020-08-27 18:36:22 句子 我要投稿

          理解goto語句的替代方式分析

            曾幾何時,goto是多么的讓牛人綻放他們高超的精湛技術

            曾幾何時,goto又變成了萬惡之首

            曾幾何時,goto只在教科書中的示例才會出現

            有太多的理由不讓用goto,但有時,我們又想使用goto的功能,怎么辦?

            用try/catch/finally便可實現同等于goto的功能,來看二個示例:

            復制代碼 代碼如下:

            try {

            // operation one

            if (failed) {

            throw Exception;

            }

            // operation two

            if (failed) {

            throw Exception;

            }

            // operation three

            if (failed) {

            throw Exception;

            }

            } catch (Exception e) {

            // do something when cases failed

            }

            和:

            復制代碼 代碼如下:

            try {

            // operation one

            if (failed) {

            return;

            }

            // operation two

            if (failed) {

            return;

            }

            // operation three

            if (failed) {

            return;

            }

            } finally {

            // do something when failed

            }

            以上二段都等同于:

            復制代碼 代碼如下:

            // operation one

            if (failed) {

            goto when_failed;

            }

            // operation one

            if (failed) {

            goto when_failed;

            }

            // operation one

            if (failed) {

            goto when_failed;

            }

            when_failed:

            // do something when failed

            用異常的方式有些暴力,但確實能正確的幫助實現類似goto的功能;用return和finally雖不是很暴力,但是比較難控制,因為涉及到return語句,它會在finally塊執行后得以執行,所以如果不想退出程序的`話,這個方法還不如用異常來控制。

            另外,break, continue也是比較強大的跳轉語句,特別是break label和continue label,可以跳出一層循環或是多層循環; 但是要注意一點的是break只能在循環語句和switch語句中使用,continue只能在循環語句中使用。所以它們的局限性也很大。

            這個小示例說明,goto不單單是一個語句,它是一種解決問題的思路和編程習慣,習慣了它的人,或者是想用它的人,即使不用goto也會寫出類似goto邏輯出來。它的優點是會更容易的幫助找出解決方案。它的缺點也是眾人皆知。但我們要避免的不單單是一個goto語句,而是這種“跳轉式”的解決思路和編程習慣。

          【理解goto語句的替代方式分析】相關文章:

          《易經》的理解分析07-24

          對《易經》的理解分析01-15

          《化石吟》課文的重點語句理解03-01

          《木蘭詩》教材理解分析05-03

          《化石吟》重點語句理解推薦03-01

          《化石吟》重點語句分析11-21

          課文孔乙己重點語句分析08-04

          《別了,不列顛尼亞》課文理解分析08-31

          歐陽修豐樂亭記閱讀理解及答案分析01-19

          內經的補血方式02-08

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  日本免费人成网站在线观看 | 午夜性色福利在线视频观看 | 日本亚洲欧美另类在线图片区 | 亚洲欧美综合久久久久久小说 | 日韩欧美亚洲每日更新在线国产精品 | 日本午夜福利在线观看 |