this question has answer here:
- switch elseif switch case 1 answer
i need turn these if statements switch-case statements. syntax errors when do. tried using smth. like:
switch(field.text){ case field.text.contains("+"): field.text=a+b; break; }
but "field.text.contains("+")" has syntax error.
i need help, please. code:
this calculator app, doing simple 2 operators math.
this method splits string in 2 in order find 2 entered numbers :
public void getnumbers(ref string first, ref string second, int place, out int firstnumber, out int secondnumber) { if (place > 0) { first = resultfiled.text.substring(0, place); second = resultfiled.text.substring(place + 1); } int32.tryparse(first, out firstnumber); int32.tryparse(second, out secondnumber); } private void calculate_click(object sender, eventargs e) { string first = null; string second = null; int result = 0; int place = 0; int firstnumber = 0; int secondnumber = 0;
identify operator in entered numbers in calculator form, find is. split string in 2, find first , last number. math operation.
add 2 numbers
if (resultfiled.text.contains("+")) { place = resultfiled.text.indexof("+"); getnumbers(ref first, ref second, place, out firstnumber, out secondnumber); result = firstnumber + secondnumber; resultfiled.text = result.tostring(); } else {
subtract 2 numbers
if (resultfiled.text.contains("-")) { place = resultfiled.text.indexof("-"); getnumbers(ref first, ref second, place, out firstnumber, out secondnumber); result = firstnumber - secondnumber; resultfiled.text = convert.tostring(result); } else {
multiply 2 numbers
if (resultfiled.text.contains("*")) { place = resultfiled.text.indexof("*"); getnumbers(ref first, ref second, place, out firstnumber, out secondnumber); result = firstnumber * secondnumber; resultfiled.text = convert.tostring(result); } else {
divide 2 numbers
if (resultfiled.text.contains("/")) { place = resultfiled.text.indexof("/"); getnumbers(ref first, ref second, place, out firstnumber, out secondnumber); try { result = firstnumber / secondnumber; } catch (dividebyzeroexception exc) { messagebox.show(exc.message); } resultfiled.text = convert.tostring(result); } } } } }
first create enum mathop
:
enum mathop {null, add, sub, mult, div }
then:
var op = txt.contains("+")? mathop.add: txt.contains("-")? mathop.sub: txt.contains("*")? mathop.mult: txt.contains("/")? mathop.div: mathop.null; switch (op) { case (mathop.add): ... case (mathop.sub): ... }
Comments
Post a Comment