### Trying to loop a basic calculator

I'm a total beginner, so I thought : Hey, I should try and program a calculator, just for fun. After 1 hour of programming ( Yes, I'm THAT much of a beginner ) I finished my calculator, but after 1 use, I have to close, and open it again to be able to use it, and I looked in the internet for ways to loop it to no avail.

This is the complete code ( It's in spanish btw, but it shouldn't be a problem right? )

 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344`` ``````#include using namespace std; int main () { double num1, num2, resultado; char letra; cout << "Bienvenido a mi calculadora " << endl; cout << "\nColoca el primer numero" << endl; cin >> num1; cout << "coloca la operacion deseada ( + - * / ) " << endl; cin >> letra; cout << "Coloca tu segundo numero" << endl; cin >> num2; if(letra == '+') { resultado= num1 + num2; cout << "el resultado de " << num1 << " mas " << num2 << " es igual a " << resultado << endl; } if(letra == '-') { resultado= num1 - num2; cout << "el resultado de " << num1 << " menos " << num2 << " es igual a " << resultado << endl; } if(letra == '*') { resultado= num1 * num2; cout << "el resultado de " << num1 << " por " << num2 << " es igual a " << resultado << endl; } if(letra == '/') { resultado= num1 / num2; cout << "el resultado de " << num1 << " entre " << num2 << " es igual a " << resultado << endl; } return 0; }``````

I tried to make it somewhat easy to read :S.
Last edited on
You could try this.
 ``12345678910111213141516171819202122232425262728293031323334353637`` ``````cout << "Bienvenido a mi calculadora " << endl; do{ cout << "\nColoca el primer numero" << endl; cin >> num1; cout << "coloca la operacion deseada ( + - * / ) " << endl; cin >> letra; cout << "Coloca tu segundo numero" << endl; cin >> num2; if(num1>0 && num2 >0) { if(letra == '+') { resultado= num1 + num2; cout << "el resultado de " << num1 << " mas " << num2 << " es igual a " << resultado << endl; } if(letra == '-') { resultado= num1 - num2; cout << "el resultado de " << num1 << " menos " << num2 << " es igual a " << resultado << endl; } if(letra == '*') { resultado= num1 * num2; cout << "el resultado de " << num1 << " por " << num2 << " es igual a " << resultado << endl; } if(letra == '/') { resultado= num1 / num2; cout << "el resultado de " << num1 << " entre " << num2 << " es igual a " << resultado << endl; } } }while(num1!=0 && num2 !=0);``````
could you explain a little bit of what you did? It would be useful to know for future instances.
Last edited on
whitenite1 put the majority of your code within a do..while loop.
Sorry, that code I gave you didn't work. I hadn't checked it before posting, and I should have. I redid it, and this code actually works.

 ``1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950`` ``````#include using namespace std; int main () { double num1, num2, resultado; char letra; cout << "Bienvenido a mi calculadora " << endl; do{ cout << "\nColoca el primer numero" << endl; cin >> num1; cout << "coloca la operacion deseada ( + - * / ) " << endl; cin >> letra; cout << "Coloca tu segundo numero" << endl; cin >> num2; if(num1 + num2 > 0.0) // If num1 and num2 are greater than 0, then do math // Just checking by adding the numbers. Negative numbers will still work { if(letra == '+') { resultado= num1 + num2; cout << "el resultado de " << num1 << " mas " << num2 << " es igual a " << resultado << endl; } if(letra == '-') { resultado= num1 - num2; cout << "el resultado de " << num1 << " menos " << num2 << " es igual a " << resultado << endl; } if(letra == '*') { resultado= num1 * num2; cout << "el resultado de " << num1 << " por " << num2 << " es igual a " << resultado << endl; } if(letra == '/') { resultado= num1 / num2; cout << "el resultado de " << num1 << " entre " << num2 << " es igual a " << resultado << endl; } } }while(num1 + num2 > 0.0); // Keep asking calc problems until two zeros are inputted return 0; }``````
Thank you very much, I will use that in the future.
Topic archived. No new replies allowed.