看板 Gossiping
作者 hazel0093 (飛龍半端ないって)
標題 [問卦] 寫程式的時候用GoTo很恐怖嗎
時間 Sun Apr 26 22:24:21 2020


如標題
最近看旗標的書

說寫程式用goto還恐怖
動不動就會迴圈
對結構化程式很不利

怎麼講得比病毒還恐怖
有沒有八卦?


--

 
Believe, believe, there's magic here tonight...
Believe, believe!
 

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.202.35 (臺灣)
※ 文章代碼(AID): #1UfPcNTL (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1587911063.A.755.html
※ 同主題文章:
[問卦] 寫程式的時候用GoTo很恐怖嗎
04-26 22:24 hazel0093.
mikemagic88: 用100個if else1F 04/26 22:24
greensaru: 看體重2F 04/26 22:24
JasperChang: 過猶不及3F 04/26 22:25
serialhon: 改用jump4F 04/26 22:25
ko27tye: 寫C的很愛用5F 04/26 22:25
Hsins: goto hell; 然後程式就爆炸ㄌ6F 04/26 22:25
allenatptt: 專案大的話超難maintain, 我甚至看到有人用全域變數就7F 04/26 22:25
D122: 樓上 for while不好嗎8F 04/26 22:25
allenatptt: 會一肚子火9F 04/26 22:25
Behind4: 沒結束的判斷式 或邏輯錯誤 容易無窮迴圈10F 04/26 22:25
drkkimo: 我都用JMP11F 04/26 22:26
ChungLi5566: 那是cobol時代太多亂寫的 現在OOP已經很少看到goto12F 04/26 22:26
neverfly: 跟遞迴一樣不是給人類用的13F 04/26 22:27
CYCUTalker: 之前我同事寫段debug code 用goto跳過14F 04/26 22:27
tv5566: 最好是沒看過。 自己弱15F 04/26 22:27
doom3: 機械碼就GOTO來GOTO去 為啥寫程式不能GO16F 04/26 22:27
CYCUTalker: 之後整個程式變慢 過了好久才找到這個原因17F 04/26 22:27
Giornno: 這會使維護不方便,對機器倒是沒什麼差18F 04/26 22:28
doasgloria: 我都寫 went to19F 04/26 22:28
CYCUTalker: 不知道compiler怎麼處理這段goto20F 04/26 22:28
boss0405: 你去看Linux kernel,很多error handling都用goto,簡單明瞭好用21F 04/26 22:28
ymx3xc: 以前RO寫MACRO GOTO非常好用== 然後release23F 04/26 22:28
Giornno: 如果有一個人跟小組作業,寫一堆goto24F 04/26 22:28
Everforest: go to 玩到最後連你自己都看不懂 = =25F 04/26 22:28
Behind4: 可以 是可以 有更好用的 為什麼不改?26F 04/26 22:29
JasperChang: 寫驅動不用 goto 很難讀也很容易漏, 自大的人才認為27F 04/26 22:29
Giornno: 保證容易出錯,也很難看懂在寫什麼28F 04/26 22:29
JasperChang: 所有程式都應該使用同一準則29F 04/26 22:29
c88tm: 雙層for的時候超好用阿30F 04/26 22:29
Behind4: 同意 JasperChang31F 04/26 22:31
spfy: 跳多層迴圈比較好用 但很多人跟看到鬼一樣死都不用32F 04/26 22:32
g5637128: 想釣jserv?33F 04/26 22:32
melody353688: 是很厲害好嗎?看看太吾繪卷 能寫出go to 堪稱經典的遊戲34F 04/26 22:33
drkkimo: 我都用call/cc36F 04/26 22:33
linfon00: batch 檔 寫簡單的蠻好用的啊37F 04/26 22:33
Giornno: 合理用goto可以減少撰寫的功夫,但要設計好
亂跳一通,會在維護時讓人想死38F 04/26 22:33
brad001: 寫goto很難維護很難trace40F 04/26 22:36
ZhouGongJin: 想挖洞的時候,就不解釋了。工程師應該團結的41F 04/26 22:38
Brainiac: goto寫在函式裡出不去,會亂就再切細點,主程式乾淨就好42F 04/26 22:38
heavensun: 有bug 很難抓43F 04/26 22:39
tanted: 我看code上會用goto都是當有error時 要讓function 能做些做些要離開function前的處裡44F 04/26 22:39
ooxx123: 外行的才這樣說46F 04/26 22:41
jhjhs33504: 疊疊樂 懶得重打差不多的47F 04/26 22:41
linfon00: 你可以在寫一個現實err msg的程式就好了
顯示48F 04/26 22:41
tanted: 比方說 close fd 或者 release memory50F 04/26 22:42
t81511270: goto  糞51F 04/26 22:43
Simonfenix: Error或Exception沒必要堅持不用GoTo52F 04/26 22:43
ashs92223: 前人寫一堆goto常造成loop  QwQ53F 04/26 22:44
watashiD: 我是來自2007年的watashiD54F 04/26 22:45
wawo58487: 只有現在的你看得懂的東西很難維護55F 04/26 22:45
watashiD: 我用了goto 2020指令來到這邊56F 04/26 22:45
johnny9667: 不會,很好玩又方便。57F 04/26 22:46
nakayamayyt: 組語一堆goto58F 04/26 22:47
KingEvan: 用在需要release的時候還不錯用59F 04/26 22:48
NewPassat: 不給用goto的書可以扔了。60F 04/26 22:53
Huan0309: 461F 04/26 22:56
Richun: 沒想好用goto會跟地獄一樣 例外或錯誤處理是主要用途62F 04/26 22:57
goto: ...63F 04/26 22:58
james80351: 484想釣64F 04/26 23:00
gaowei16: 組語:65F 04/26 23:06
bobju: 從沒在用goto的66F 04/26 23:07
Behind4: 天下間 只有組合語言嗎?.....67F 04/26 23:08
mcucte: 寫組合語言,你能大量享受68F 04/26 23:11
MobileComm: goto會讓一片敘述變成循序執行,如果只有兩件事要做是還好,擇一跳開,但如果日後又多了其他敘述參雜,到時又更多goto跑來跑去,因為沒有平行選擇的概念69F 04/26 23:12
menshuei: 沒不能用阿,只是以後有的語言沒這個你就沒招了。72F 04/26 23:22
papaganono: 就開外掛直接跳脫本圈邏輯啊 還不一定回來
其實問題不在goto 而在沒有納入整體邏輯考慮73F 04/26 23:23
goto: 認真回。舉個例子,在kernel寫c的時候,goto可以讓function內處理失敗的routine更優雅。後半段失敗的routine部分跟前半段正常執行的routine會有對稱感。如果沒goto,常見的替代方式是多n個變數,例如err、is_open等方式去記錄已經操作的狀態,當這個fun走到一半而失敗需要回復時,就要一個一個檢查做了那些而去反向操作,例如已經開檔的就要關檔才退出fun。這樣寫法code會很雜亂,所以才有利用goto的對稱寫法。75F 04/26 23:28
wbreeze: 樓上goto82F 04/26 23:30
rainley: goto本人回應欸XD 不過還是要說能讓大家看得懂的code才83F 04/26 23:31
wifirts: goto本人84F 04/26 23:31
rainley: 是好code85F 04/26 23:31
wju1230: 這也能釣到本人 XD86F 04/26 23:31
ppc: goto超爛87F 04/26 23:32
heavenlyken: 其實就是看人的本事 沒把握就別用88F 04/26 23:36
giaour 
giaour: I go to school by bus. 完美詮釋goto的用法。89F 04/26 23:36
orange7986: goto本尊XD90F 04/26 23:38
chiguang: 我10年前goto就一直跑到現在了給你參考91F 04/26 23:45
iamnotme: TODO才可怕92F 04/26 23:55
gayday: 式的93F 04/26 23:58
orze04: high level的別用94F 04/27 00:17
Siika: 真的不行再用95F 04/27 00:46
Bschord: goto本人講的聽起來就很有說服力   XD96F 04/27 00:57
rebuildModel: 救急的時候很好用,一般真的不要考慮去使用。97F 04/27 01:03
lin0129: goto 就是太縱容自己的行為98F 04/27 01:15
su27: 組合語言用一堆99F 04/27 01:28
landysh: 用的好的話很棒,用不好的話很慘100F 04/27 02:38
runedcross: 看情況 可讀性
有人蠻低能的用 do while break 解 沒意義101F 04/27 03:49
amethystboy: 恐怖喔 恐怖到了極點喔103F 04/27 06:10
NgJovi: 本人都來惹 我信你104F 04/27 07:17
lonysancho: 邏輯不好的人看不懂、不會用、不敢用…105F 04/27 08:00
mido: 盡量不用 代表程式沒有系統性 亂跳 自己看還可 看別人的想死小程式還好 我手邊有隻程式超過10萬行 你敢goto來goto去??出問題debug不容易106F 04/27 09:26

--
--
作者 hazel0093 的最新發文:
點此顯示更多發文記錄
(hazel0093.): [問卦] 寫程式的時候用GoTo很恐怖嗎 - Gossiping板