我試圖讓我的代碼更有效率,並替換了我寫的一堆if語句。到目前爲止,我的程序主要檢查輸入的操作符(如+, - 等),然後計算它。例如1 + 5給出6.當程序評估數字之間的符號(在我的例子中爲「+」)時,它將檢查操作員是什麼,然後相應地進行。例如,如果這是一個「+」,將採取1,並添加5的代碼是這樣的:更換If語句?
switch (op) {
case "+": // Addition
return args[0] + args[1];
case "-": // Subtraction
return args[0] - args[1];
case "*": // Multiplication
return args[0] * args[1];
case "/": // Division
return args[0]/args[1];
我想知道是否有可能以某種聲明,即會取代這整塊從String中檢測操作符並將其轉換爲操作?我認識到,對於少數幾個操作員來說,使用switch語句可能更容易,但是我有很多這樣的操作,並且在評估switch語句頂部的操作符和底部之間有5-10ms的差異。
有很多案件switch語句已經被編譯器優化的東西,同等進行到基於散列的查找,或者至少比線性if/else搜索更好。 – The111 2015-02-11 19:41:04