13 結構化程式設計強調程式應該僅有一個輸入與輸出點,下面那一個邏輯會將程式變複雜,且不易做白箱 測試(White Box Testing)?
(A) If-then-else
(B) Goto
(C) Do-while
(D) Case

答案:登入後查看
統計: A(21), B(184), C(18), D(9), E(0) #1090744

詳解 (共 2 筆)

#3077441
GOTO語句一直是批評和爭論的目標,主要...
(共 324 字,隱藏中)
前往觀看
11
0
#6228240
GOTO語句一直是批評和爭論的目標,主要的負面影響是使用GOTO語句使程式的可讀性變差,甚至成為不可維護的「麵條代碼」。隨著結構化編程在二十世紀六十年代到七十年代變得越來越流行,許多電腦科學家得出結論,即程式應當總是使用被稱為「結構化」控制流程的命令,如迴圈以及if-then-else語句來替代GOTO。甚至在今天,許多程式風格編碼標準禁止使用GOTO語句。為GOTO語句辯護的人認為,加以限制地使用GOTO語句不會導致低品質的代碼,並且聲稱在許多程式語言中,一些任務如果不使用一條或多條GOTO語句是無法被直接實現的。如有限狀態自動機的實現、跳出巢狀迴圈以及例外處理。
大概最著名的對於GOTO的批評是艾茲格·迪傑斯特拉在1968年的一篇名稱為《GOTO語句有害論》的論文。迪傑斯特拉認為不加限制地使用GOTO語句應當從高階語言中廢止,因為它使分析和驗證程式正確性(特別是涉及迴圈)的任務變得複雜。另外一種觀點出現在高德納的Structured Programming with go to Statements中,文章分析了許多常見編程任務,然後發現其中的一些使用GOTO將得到最理想的結構。
這些批評在一些程式語言的設計上起到了效果。雖然Ada語言的設計者在二十世紀七十年代晚期意識到了對於GOTO的批評,這條語句仍舊被包含進去,主要是用來支援自動生成那些goto語句必不可少的代碼。但是,作為goto語句目的地的標籤必須使用雙尖括號括起來(如:<<Start_Again>>),而這個語法在其他語言中都不被使用。這使得檢查程式中goto目的地的存在變得容易。goto語句本身使用簡單的形式goto Start_Again;.
0
0