找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人搞笑、娛樂、精彩的影片讓你看你準備好成為出色的版主了嗎?
office三上ge催眠gdvrrpg
里亞德錄惡靈古堡lovelywanz 608女裝聖騎紅豬人妻コン

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁/無修正]夢想成為

中國老頭在香港淺水灣

[繁]藥師少女的獨語24

[繁]因為不是真正的夥

[繁/無修正]夢想成為

[繁]迷宮飯09-
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
樓主: a91337a

[問題] 新手發問C語言Goto指令[複製鏈接]

帖子
6
積分
5 點
潛水值
560 米
發表於 2018-7-9 11:55 AM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
別聽網路說大話 ,該用就用 ,但別用太多 程式會亂七八糟.
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

affkame 該用戶已被刪除
發表於 2018-7-12 12:34 PM|顯示全部樓層
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
Goto沒有問題,但當你run的專案大,要互相review時,你就會發現怎麼自己的code最髒,再過三個月後回來看,你會發現這到底是哪個阿呆在亂寫

使用道具檢舉

Rank: 2Rank: 2

帖子
176
積分
291 點
潛水值
2840 米
發表於 2018-7-12 01:49 PM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
本帖最後由 MY0613 於 2018-7-12 01:53 PM 編輯

「未悟道以前,見山是山,見水是水;見道以後,見山不是山,見水不是水;最後大徹大悟以後,見山還是山,見水還是水。」

初學者就先記著這個潛規則,
程式碼看多了…
  1. if (do_something() != ERR) {
  2.     if (do_something2() != ERR) {
  3.         if (do_something3() != ERR) {
  4.             if (do_something4() != ERR) {
  5.                 ...
複製代碼
這種東西就覺得用 goto
  1. if (do_something() == ERR)  // Straight line
  2.     goto error;             // |
  3. if (do_something2() == ERR) // |
  4.     goto error;             // |
  5. if (do_something3() == ERR) // |
  6.     goto error;             // V
  7. if (do_something4() == ERR) // emphasizes normal control flow
  8.     goto error;
複製代碼
感覺就典雅很多
但是,看了一陣子…發現程式碼還是人寫的…程度不夠的人看了這段碼,為了修bug 毀了這典雅…
那還是回到原點…

總之,工具本身沒有"對錯"、"好壞"…但是用的人不同,才會顯示出差異…
參考看看。
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

Linux Kernel source code 也存在著許多goto…但那又如何呢?

...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 2Rank: 2

帖子
1051
積分
619 點
潛水值
27270 米
發表於 2018-7-13 10:22 AM|顯示全部樓層
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
還有別的情況下也可以用goto
很多層的loop 最內層有錯發生. 外層也不要執行了. 直接用goto 離開.
example
  1. while( exp )
  2. {
  3.    while( exp2 )
  4.    {
  5.       while( exp3 )
  6.       {
  7.              ....
  8.              if( fail )
  9.                 goto exitAll;
  10.              ....
  11.   
  12.       }
  13.    }
  14. }
  15. exitAll:;
複製代碼
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

love88131496 該用戶已被刪除
發表於 2018-7-13 05:43 PM|顯示全部樓層
GOTO最大的問題是在"可讀性"。
但所謂可讀性,是在程式碼需要"被讀"的時候才重要。
10~20行內,作GOTO,限制跨原始碼檔作GOTO呼叫,有什麼不可?
ASM,遠程呼叫常見(也只能用JUMP)

如果一個函式,寫到了幾千行,那用所謂的"結構性的迴圈"也不會比用"GOTO"好到哪裡去

try...catch...finally也是典型類似GOTO的"結構性"寫法。但try...catch中間,或者catch..finally中間區塊幾千行,那也好不到哪裡去
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

Rank: 2Rank: 2

帖子
191
積分
265 點
潛水值
17080 米
發表於 2018-8-8 09:28 PM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
指令本身是沒有問題的,但你的同事問題會很多
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 1

帖子
132
積分
129 點
潛水值
1850 米
發表於 2018-8-17 12:14 AM|顯示全部樓層
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
沒有不能使用goto, 我認為語言的設計出來的東西都有其必要性, 很多公司都限制programmer不能使用marco, 我認為這些限制是不合理的, 而且你去看linux kernal, marco/goto 用一堆, 誰說有什麼東西不能用。

點評

johnwanz 方便介紹一下, 限制使用Marco的原因是什麼? 我比較看到的是不常寫Marco, 而不是Marco太多... 有什麼理由去限制Marco?  發表於 2018-8-17 09:27 AM

使用道具檢舉

Rank: 1

帖子
132
積分
129 點
潛水值
1850 米
發表於 2018-8-18 01:44 PM|顯示全部樓層
advantise 發表於 2018-8-17 12:14 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

沒有不能使用goto, 我認為語言的設計出來的東西都有其必要性, 很多公司都限制programmer不能使用marco, 我 ...

每個公司都不太一樣, 但是大部份的公司都認為不好維護, 這些公司有上市公司, 也有大的美商公司...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
發表於 2018-9-8 09:11 PM 來自手機|顯示全部樓層
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
其實避免使用goto是1980年代結構化程式語言教科書上的指示。當時為了強調結構化的重要性,因此提出這樣子的觀念。
但事實上,在Linux kernel卻是很常見的做法。原因出在Linux kernel採用的是物件化的觀念,由於純C的程式並沒有try catch 的語法,因此goto成為替代選項。事實上,這樣子的語法反而比結構化寫法更容易理解,同時也更不容易出錯。因為過多巢狀的if else 反而更容易出錯,尤其是程式又臭又長的情況下。試想看看,當程式裡if else裡有個五層的if else語法包覆時的情況,可讀性能好到哪去。還遠不及採用goto的方式來解決問題。
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次

使用道具檢舉

Rank: 1

帖子
71
積分
49 點
潛水值
5160 米
發表於 2018-9-10 09:04 AM|顯示全部樓層
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
goto最好不要用,因為在後續除錯上,增加困難度。




回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

帖子
64
積分
1 點
潛水值
4190 米
發表於 2018-9-30 01:29 PM|顯示全部樓層
本帖最後由 whyend1119 於 2018-9-30 01:35 PM 編輯

樓上有很多舉出用GOTO的例子,其實都可以用try, throw和catch來完美的呈現,這也是寫程式在做error handling的標準做法,當然,這要用到C++的語法。

很多時候錯誤發生在巢狀迴圈或是判斷式中,要每個地方跳出來個別做錯誤處理,用GOTO似乎是無奈但卻很合理的選擇,正是因為這樣,才有try, throw和catch的語法出現
...
瀏覽完整內容,請先 註冊登入會員
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

affkame 該用戶已被刪除
發表於 2018-10-3 12:50 PM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
非不能用,而是你寫了之後,三個月後再回來看,你能不能秒懂?
當然如果只需要寫不需要看也不靠這吃飯,就你開心就好
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 2Rank: 2

帖子
353
積分
347 點
潛水值
12540 米
發表於 2018-11-28 07:57 PM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
其實現在分兩派,
一派是goto很好用,另一派是不要用goto。

先說兩派主要堅持的地方,
(我是中立派的,工具好用就該用,不好用就別硬用)
不用goto的主要原因,
因為程式"不標準、不夠結構化"(只是什麼是標準...!?)
程式能力不強的人,會讓程式不知道跳到哪、讀程式碼的人不好了解。

用goto的主要原因,
因為程式該跳的時候就跳到想要的地方,
...
瀏覽完整內容,請先 註冊登入會員
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
發表於 2018-12-10 06:23 PM 來自手機|顯示全部樓層
ykshieh 發表於 2018-11-28 07:57 PM
其實現在分兩派,
一派是goto很好用,另一派是不要用goto。


這是因為系統堆疊的問題
遞迴之中再跳到另一個遞迴時
就很容易出錯
goto不在於好不好用
而是在於是否能夠避免使用過多的{}夾層
{{}}過多層的時候就不具有可讀性
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次

使用道具檢舉

帖子
4
積分
1 點
潛水值
1750 米
發表於 2019-4-15 01:41 AM|顯示全部樓層
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
我也不愛用Goto,這樣做事超難結構化,小程式還可以,大程式丟災系,以前教授就講,Goto只有一個地方可以用,那就是這句語法可能導致整個系統或程式Crash,那這樣就得直接用Goto指向某個地方,不然crash更麻煩,不過到現在,我一次Goto都沒用到,倒是在VBA還用到一些,誰叫VBA沒有跟C一樣有continue(攤手




回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部