[問題] 面試時遇到的問題

看板Programming作者 (酒菜)時間16年前 (2008/08/06 13:00), 編輯推噓4(408)
留言12則, 6人參與, 最新討論串1/3 (看更多)
我去面試寫專業科目考卷時 有一題題目是這樣 function test(var value){ if(value == "a"){ return 2; } else if(value == "b"){ return 5; } else if(value == "c"){ return 1; } else if(value == "d"){ return 4 } else if(value == "e"){ return 3; } } value的值一定是 "a" "b" "c" "d" "e"這五個其中一個 不能用 迴圈 switch case 三元運算式 if else 怎麼達到以上程式碼的效果 我怎麼都想不出來 麻煩板上的知道的高手回答一下 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.125.232.118

08/06 13:11, , 1F
ASCII
08/06 13:11, 1F

08/06 13:11, , 2F
int ar[5]={2,5,1,4,3};
08/06 13:11, 2F

08/06 13:11, , 3F
return ar[ value - 'a' ];
08/06 13:11, 3F

08/06 14:09, , 4F
第一時間我也想到ASCII 卻忘了加上陣列
08/06 14:09, 4F

08/06 14:09, , 5F
感謝一樓跟二樓的解答
08/06 14:09, 5F

08/06 16:12, , 6F
那如果輸入值不在 a-e 的範圍內...XDDD
08/06 16:12, 6F

08/06 16:40, , 7F
前提已經說了 value的範圍 所以就解題
08/06 16:40, 7F

08/06 16:40, , 8F
而言沒有問題
08/06 16:40, 8F

08/06 21:21, , 9F
不在a-e還不簡單 就弄個127項的陣列
08/06 21:21, 9F

08/06 21:22, , 10F
或者255項 再用logic op'tor cancel掉
08/06 21:22, 10F

08/06 21:22, , 11F
其餘區域
08/06 21:22, 11F

08/06 21:23, , 12F
但是題目已經講明了,不用自己想太多。
08/06 21:23, 12F
文章代碼(AID): #18cI_XGU (Programming)
文章代碼(AID): #18cI_XGU (Programming)