電腦遊戲製作開發設計論壇 首頁 電腦遊戲製作開發設計論壇
任何可以在PC上跑的遊戲都可以討論,主要以遊戲之製作開發為主軸,希望讓台灣的遊戲人有個討論、交流、教學、經驗傳承的園地
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

Google
各位對goto的感想如何?

 
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念
上一篇主題 :: 下一篇主題  
發表人 內容
fire231
散播福音的祭司


註冊時間: 2007-09-15
文章: 152

322.55 果凍幣

發表發表於: 2007-9-30, PM 5:29 星期日    文章主題: 各位對goto的感想如何? 引言回覆

聽說很多人不喜歡在程式內使用goto

各位對使用goto的感想是啥呢?

我是覺得還蠻好用的...
回頂端
檢視會員個人資料 發送私人訊息
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2007-9-30, PM 7:05 星期日    文章主題: 引言回覆

以前我也很喜歡用goto的 (會Basic時)

不過改學C/C++以後就沒在用了 (都用while迴圈,或是開個函數用)

-----------------------------------------------------------------
大家不用goto,是因為它會破壞結構化吧...(明明在某個函數中執行,卻跳到另一個函數裡的某個標籤之類的)
而且程式一大,要追蹤起程式碼會很麻煩...

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
fire231
散播福音的祭司


註冊時間: 2007-09-15
文章: 152

322.55 果凍幣

發表發表於: 2007-9-30, PM 7:08 星期日    文章主題: 引言回覆

這個= =

我是寫C++的(只是沒用出物件導向部分= =..XD)

可是我蠻喜歡用goto的說~比while好用多了

而且用了goto可以少了不知道多少函數...

goto只有短程跳躍~不會跳到另外一個函數的標籤吧?
回頂端
檢視會員個人資料 發送私人訊息
lsk
喜歡上這裡的冒險者


註冊時間: 2007-06-20
文章: 93

20.59 果凍幣

發表發表於: 2007-10-2, AM 3:09 星期二    文章主題: 引言回覆

我的想法是:小的程式完全沒差!用在對的時機,goto是可以很好用的。只是學習語言的過程就是一種習慣的養成,如果是為了方便而只有學會用goto,將來有機會跟別人一起寫大型專案時就會吃到苦頭了。所以許多書乾脆教人不要用囉。
回頂端
檢視會員個人資料 發送私人訊息
fire231
散播福音的祭司


註冊時間: 2007-09-15
文章: 152

322.55 果凍幣

發表發表於: 2007-10-2, PM 6:48 星期二    文章主題: 引言回覆

對於大型專案來講~

不常用goto嗎?

我覺得與其使用while~goto似乎比較好用?

另外我看了另外個論壇的文章

似乎只有學生(老師對學生)會比較禁止使用吧?

另外個問題~goto在普通的使用下應該不會跨越函數吧?

就是假如A跟B函數內有同樣的標籤~在B函數內用goto應該不會跳去A吧?
回頂端
檢視會員個人資料 發送私人訊息
babu61509
散播福音的祭司


註冊時間: 2007-08-26
文章: 142

681.01 果凍幣

發表發表於: 2007-10-2, PM 9:56 星期二    文章主題: 引言回覆

姆...經過測試以後是不會跳到別的函數的標籤啦... (太久沒碰goto)

http://caterpillar.onlyfun.net/Gossip/CppGossip/breakContinueGoto.html
這邊有個小範例,看一下

如果程式變大的話,標籤一堆要追蹤起來就滿複雜的了...

_________________
已經畢業了!!
回頂端
檢視會員個人資料 發送私人訊息
fire231
散播福音的祭司


註冊時間: 2007-09-15
文章: 152

322.55 果凍幣

發表發表於: 2007-10-2, PM 9:59 星期二    文章主題: 引言回覆

大型的程式是多少以上才算大型的= =?

通常都是用很多的函數連接吧

既然goto的作用範圍只有在函數裡面

要檢查或是新增的時候應該不會差太多吧?

例如大大連結的網頁裡面

第1個我稍微修改了一下
代碼:

#include <iostream>

using namespace std;

int main()
 {
     int input = 0;
begin:
     cout << "輸入一數:";
     cin >> input;
     if(input == 0)
     {
        cout << "除數不可為0" << endl;
        goto begin;
     }
     cout << "100 / " << input
            << " = " << static_cast<double>(100) / input
            << endl;

     return 0;
}


在這小段程式裡 似乎上面會比較好用~至於大型程式我就不知道是多大了
代碼:

#include <iostream>

using namespace std;

int main()
{
     int input = 0;
     while(true)
    {
         cout << "輸入一數:";
         cin >> input;
         if(input != 0)
        {
             cout << "100 / "
                    << input
                    << " = "
                    << static_cast<double>(100) / input
                    << endl;
              break;
         }
         cout << "除數不可為0";
     }
return 0;
}


我雖然會使用while不過不常用

而且我會用到goto是需要刷新畫面(選單)
回頂端
檢視會員個人資料 發送私人訊息
曾佳彬
稍嫌羞澀的路人


註冊時間: 2007-11-13
文章: 1

0.00 果凍幣

發表發表於: 2007-11-13, PM 7:47 星期二    文章主題: 引言回覆

goto是把兩面刃

如果用得好的話,結構可以寫的比只用 while for 來的緻密

但你就祈禱不要有 bug

一有 bug, 要嘛 眼鏡度數加深 要嘛 程式重寫

所以請避免用 goto 或別常用

我認為會用到 goto 的時機大概只有在交叉式回圈

或中途要在 3 ,4 層迴圈跳出時goto 就超好用
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    電腦遊戲製作開發設計論壇 首頁 -> 遊戲程式初級班:語法及基礎概念 所有的時間均為 台灣時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
可以 在這個版面附加檔案
可以 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作