First, a bit of business: you may not have read our naming policy on the way in. It requires that you use a full, real (sounding) first and last name for your display name. Joke names and "handles" aren't acceptable here. You can change your display name here. Thanks! We take this rule very seriously.
Now, on to your question: when you have a String variable -- or any other kind of object variable -- it's actually a reference to a String object, rather than the object itself. That means, for example, that multiple String variables can all be referring to the same physical String object in the computer's memory. The "==" operator asks if two variables refer to the same physical object.
But if one of your Strings is compiled into your code, and the other one comes from a user typing, they aren't going to be the same object -- they're going to be two separate objects that just happen to contain the same characters. The equals() method checks for this condition. In other words, replace
if (mtdcal == "subtract")
and things will magically start working.
For a better and more entertaining explanation of this concept, see this and this.