[問題] switch 的case 一定要常數??

看板C_and_CPP (C/C++)作者 (阿干)時間16年前 (2009/05/23 01:42), 編輯推噓6(6020)
留言26則, 9人參與, 最新討論串1/2 (看更多)
如題 我寫了一個小遊戲 我本來都用 #define Up 'H' switch( Input ) case Up: dosomething(); break; ................... 我想寫出能讓玩家自己選擇要哪些鍵當作上下左右等等... 我試過int Up = 'H'; 但switch的case compile都不會過 只有const int Up = 'H';才會過 要如何才能寫出更改按鍵 用if...else??? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.104.117

05/23 02:09, , 1F
char
05/23 02:09, 1F

05/23 02:39, , 2F
自己做hash?
05/23 02:39, 2F

05/23 03:14, , 3F
如果比較很少 if else就夠啦 不然用陣列作mapping也行
05/23 03:14, 3F

05/23 06:01, , 4F
array of function pointer
05/23 06:01, 4F

05/23 08:15, , 5F
樓上那個是什麼意思 不太懂??
05/23 08:15, 5F

05/23 12:33, , 6F
就只是用陣列做功能的對應而已
05/23 12:33, 6F

05/23 14:16, , 7F
不好意思 可以提供大概的寫法或舉個例嗎 還是不太懂ˊˋ
05/23 14:16, 7F

05/23 14:41, , 8F
是指還是用switch??
05/23 14:41, 8F

05/23 14:46, , 9F
你可以用if吧。比如定義int custU;決定上要用哪個鍵,然後
05/23 14:46, 9F

05/23 14:47, , 10F
if(input==custU) input = 'U'; switch(input) case 'U'
05/23 14:47, 10F

05/23 14:54, , 11F
這樣用if..else不就好了???
05/23 14:54, 11F

05/23 14:54, , 12F
只是考量你如果懶得刪掉原本的swich可以這樣
05/23 14:54, 12F

05/23 14:58, , 13F
喔喔 我懂你的意思 但因為有十個以上的按鍵
05/23 14:58, 13F

05/23 14:58, , 14F
用if..else 我怕程式會變慢
05/23 14:58, 14F

05/23 16:41, , 16F
感謝樓上的資料 但我看不懂英文= = SORRY...
05/23 16:41, 16F

05/23 16:44, , 17F
map<key,value>
05/23 16:44, 17F

05/23 16:57, , 18F
這個要怎麼弄???第一次見到map
05/23 16:57, 18F


05/23 17:02, , 20F
每個函數都有一些簡單的範例
05/23 17:02, 20F

05/23 17:35, , 21F
我也會想要用 function pointer array 來做 XD
05/23 17:35, 21F

05/23 18:13, , 22F
什麼是funtion pointer array
05/23 18:13, 22F

05/23 18:18, , 23F
就是function pointer的陣列
05/23 18:18, 23F

05/23 18:46, , 24F
我查到function pointer array 可是看不出來
05/23 18:46, 24F

05/23 18:46, , 25F
該怎麼用在我的要求上= =
05/23 18:46, 25F

05/23 19:41, , 26F
目前有個想法了 先來試試看
05/23 19:41, 26F
文章代碼(AID): #1A5kGBri (C_and_CPP)
文章代碼(AID): #1A5kGBri (C_and_CPP)