我试图让我的代码更有效率,并替换了我写的一堆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