大家安安 o'_'o
乳提,我 94 不喜翻 if-else 和 switch-case 喇,所以凡是能用三元運算子我必不用 if,switch 大部分以陣列及迴圈化解。
然而,題目所求是四則運算,要怎麼放進陣列?總不會全部算一遍丟進去吧 XD
不曉得尼有迷有聽過「函式指標」?我們可以定義四個函式對應四則運算。但是如此一來,程式碼便ㄉ很長,也違背初衷。
所以,讓我們使用現代 C++ 帶來 der 強大利器——「Lambda 運算式」八!
#include <functional> // 單純使用 lambda 不須引入此 header,惟我們須使用 lambda 陣列而 auto 不能 declare array
using std::function;
...
long a, b, o;
function<long()> funcs[] = {[&] { return a + b; }, [&] { return a - b; }, [&] { return a * b; }, [&] { return a / b; }}; // 以 reference 抓取喔
// 接下來只要讀入 o, a, b 並呼價對應之 lambda 即可(注意兩數在後面)
cout << funcs[o - 1]() << endl;
大 guy 4 john
謝謝大家