Firstly, the syntax
else (a == '/')
return a/b;
is wrong, and should be
else if (a == '/')
return a/b;
Secondly, your a
parameter can only take 4 discrete values, so good practice is to use an enumeration, e.g.
enum Operation
{
kAddition,
kSubtraction,
kMultiplication,
kDivision
};
int Compute(Operation a, int a, int b)
{
if (a == kAddition)
return a+b;
else if (a == kSubtraction)
return a-b;
else if (a == kMultiplication)
return a*b;
else if (a == kDivision)
return a/b;
}
which ensures that the user of Compute
will only use one of those four values for the operation (a
) parameter.
I probably haven't used best practices in my example, so I recommend you read this answer for more detail.
Finally you could make the code more concise by using a switch statement:
enum Operation
{
kAddition,
kSubtraction,
kMultiplication,
kDivision
};
int Compute(Operation a, int a, int b)
{
switch (a)
{
case kAddition:
return a+b;
case kSubtraction:
return a-b;
case kMultiplication:
return a*b;
case kDivision:
return a/b;
}
}