不知原因导致一个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