// IMPROVING OUR CALCULATOR // LEARN: functions, while loop, break statement // importing writeln, write and readf functions import std.stdio: writeln, write, readf; void main() { float a = 0; float b = 0; char operation; // '+', '-', '*', '/' write("first number: "); readf(" %s", a); write("second number: "); readf(" %s", b); write("operation: "); /* while(condition is true) { // if condition is false, it will terminate the loop and continue down below repeat; } */ /* bool unknownOperation = true; while(unknownOperation) { readf(" %s", operation); if(operation == '+' || operation == '-' || operation == '*' || operation == '/') { unknownOperation = false; } else { write("Error! Unknown operation. Try again: "); } } */ while(true) { readf(" %s", operation); if(operation == '+' || operation == '-' || operation == '*' || operation == '/') { break; } else { write("Error! Unknown operation. Try again: "); } } float result = 0; if(operation == '+') { result = addition(a, b); } else if(operation == '-') { result = substraction(a, b); } else if(operation == '*') { result = multiplication(a, b); } else if(operation == '/') { result = division(a, b); } writeln(a, operation, b, "=", result); // further instructions... } // our functions float addition(float a, float b) { return a+b; } float substraction(float a, float b) { return a-b; } float multiplication(float a, float b) { return a*b; } float division(float a, float b) { return a/b; } /* returnType functionName(parameterList) { instructions; } void Example: float addition(float a, float b) { float add = a + b; return add; } float addition(float a, float b) { return a+b; } */