不知原因導致一個case無法執行(已解決)

Home Home
引用 | 編輯 ccw111
2012-05-16 21:44
樓主
推文 x0
不知道為什麼第149行的
case無法執行

sma檔案在此(請將擴展名改成txt)

獻花 x0
引用 | 編輯 sonic0103
2012-05-18 03:57
1樓
  
看來程式沒問題,編譯也正常通過。
但我會把switch整段改用if判斷式來替代成以下這樣

複製程式
if( TeamCreated[key-1] == true )
  SubSubTeamStateMenu( id , key )
else
  client_print( id , print_chat , "你所選擇的隊伍未被建立" )
一來程式區塊明瞭又減少程式碼重複的問題...

選擇 case2 時switch敘述句無法進入是因為在SubTeamStateHandler函式 
127行中的if敘述句條件成立,而呼叫了menu_destroy函式 (摧毀選單),所以導致執行並無如預期結果 !
(若是case1、case3 這個if敘述並不會成立)

複製程式
 
if( item == MEXIT_ALL )
{
  menu_destroy( menu );
} 


獻花 x1
引用 | 編輯 ccw111
2012-05-18 07:27
2樓
  
下面是引用 sonic0103 於 2012-05-18 03:57 發表的 : 到引言文
看來程式沒問題,編譯也正常通過。
但我會把swich整段改用if判斷式來替代成以下這樣
[code]
if( TeamCreated[key-1] == true )
SubSubTeamStateMenu( id , key )
.......

其實我試過把case 2 和case 3 倒轉
結果原本的case 2 能夠執行...

不過見到你把我的程式碼一部分放出來的時候
我終於發現了
原來我把if ( item == MENU_EXIT )寫成 if( item == MEXIT_ALL )
先謝謝
如果你不放上來我也看不到錯了什麼

獻花 x0