顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2020-04-27 10:10:02
看板 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
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
boss0405: 單明瞭好用
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
melody353688: 的遊戲
drkkimo: 我都用call/cc36F 04/26 22:33
linfon00: batch 檔 寫簡單的蠻好用的啊37F 04/26 22:33
Giornno: 合理用goto可以減少撰寫的功夫,但要設計好38F 04/26 22:33
Giornno: 亂跳一通,會在維護時讓人想死
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 能做些44F 04/26 22:39
tanted: 做些要離開function前的處裡
ooxx123: 外行的才這樣說46F 04/26 22:41
jhjhs33504: 疊疊樂 懶得重打差不多的47F 04/26 22:41
linfon00: 你可以在寫一個現實err msg的程式就好了48F 04/26 22:41
linfon00: 顯示
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會讓一片敘述變成循序執行,如果只有兩件事要做是69F 04/26 23:12
MobileComm: 還好,擇一跳開,但如果日後又多了其他敘述參雜,到
MobileComm: 時又更多goto跑來跑去,因為沒有平行選擇的概念
menshuei: 沒不能用阿,只是以後有的語言沒這個你就沒招了。72F 04/26 23:22
papaganono: 就開外掛直接跳脫本圈邏輯啊 還不一定回來73F 04/26 23:23
papaganono: 其實問題不在goto 而在沒有納入整體邏輯考慮
goto: 認真回。舉個例子,在kernel寫c的時候,goto可以讓function75F 04/26 23:28
goto: 內處理失敗的routine更優雅。後半段失敗的routine部分跟前半
goto: 段正常執行的routine會有對稱感。如果沒goto,常見的替代方
goto: 式是多n個變數,例如err、is_open等方式去記錄已經操作的狀
goto: 態,當這個fun走到一半而失敗需要回復時,就要一個一個檢查
goto: 做了那些而去反向操作,例如已經開檔的就要關檔才退出fun。
goto: 這樣寫法code會很雜亂,所以才有利用goto的對稱寫法。
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: 看情況 可讀性101F 04/27 03:49
runedcross: 有人蠻低能的用 do while break 解 沒意義
amethystboy: 恐怖喔 恐怖到了極點喔103F 04/27 06:10
NgJovi: 本人都來惹 我信你104F 04/27 07:17
lonysancho: 邏輯不好的人看不懂、不會用、不敢用…105F 04/27 08:00
mido: 盡量不用 代表程式沒有系統性 亂跳 自己看還可 看別人的想死106F 04/27 09:26
mido: 小程式還好 我手邊有隻程式超過10萬行 你敢goto來goto去??
mido: 出問題debug不容易

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 824 
分享網址: 複製 已複製
1樓 時間: 2020-04-26 23:25:57 (台灣)
  04-26 23:25 TW
···
現在的小朋友邏輯都很錯亂?
2樓 時間: 2020-04-26 23:57:08 (台灣)
  04-26 23:57 TW
天才才能用goto 問題你有把握掌握所有任何狀況goto出去沒問題 不能出問題才goto回來解決 像是有人goto枋寮 出問題才goto回台北 這肯定很蠢
3樓 時間: 2020-04-27 00:36:35 (台灣)
  04-27 00:36 TW
如果是小程式,goto還好啦!但如果是大程式用goto,保證日後在debug的時候會瘋掉,因為goto來goto去,程式跳來跳去,會找不到這個goto到底是那一行!
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇