3 Attachment(s)
While loop only runs once
Hello everyone. I am stuck and have an issue that I'm hoping someone will be able to help me with. I'm writing a simple integer calculator that supports addition, subtraction, multiplication, modulus, and division. I have to implement this by defining a class. The program is suppose to 1. request and accept a number, 2. apply the stored operation (of which the first is addition and after it should be whatever the user enters), 3. request and accept the next operation. When the operation entered is '=', the result should be printed and the accumulator reset, when '!' is entered as the operator, the same should happen except the program should now terminate.
Here is a sample run of what I'm trying to accomplish
Welcome to the calculator
------
Input: 10
Operation: *
Input: 2
Operation +
Input: -5
Operation: =
Result: 15
------
Input: 12
Operation: /
Input: 0
**Division by zero - start over
------
Input: 12
Operation: >
**Invalid operation - ignored
Operation: /
Input: 5
Operation: =
Result: 2
------
Input: 10
Operation: %
Input: 6
Operation: *
Input: 3
Operation: !
Result: 12
------
Calculator Off!
The issue I am having is when I run the program, the while loop is not continuing as it should and exits right away without op being '='. I have attached the files with the code I have so far because I didn't want to make this post any longer than it already is.
Any help would be greatly appreciated. Also feel free to make any comments on anything else I could improve on.
Re: While loop only runs once
Look at your main() function:
Code:
while (!(op = '!')); //while op is not '!' keep going
"=" in "op = '!'" is an asignment operator, NOT compare. Did you mean op == '!' ?
Re: While loop only runs once
Quote:
Originally Posted by
slyslick
The issue I am having is when I run the program, the while loop is not continuing as it should and exits right away without op being '='.
Please, show us this loop.
Quote:
Originally Posted by
slyslick
I have attached the files with the code I have so far because I didn't want to make this post any longer than it already is.
Use Code tags around the code snippets and your post will never be too long.
Re: While loop only runs once
I have made the change suggested by VladimirF and also the if statement 4 lines below and now the loop will not execute at all, the program freezes with a flashing cursor.
Re: While loop only runs once
Use the debugger to figure out where it's stuck and why.
Re: While loop only runs once
Quote:
Originally Posted by
VladimirF
Look at your main() function:
Code:
while (!(op = '!')); //while op is not '!' keep going
"=" in "op = '!'" is an asignment operator, NOT compare. Did you mean op == '!' ?
He's right, the value of op = '!' is '!'. An assignment always returns the assigned value. to compare op to '!' us while (!(op == '!')); Or, even better while(op != '!');
Re: While loop only runs once
i had a ; after the while statement. it gets further nowbut still sticks somewhere. not sure y. i will see if i can resolve this one on my own before i ask for help but thank you guys for your help so far, cant beleive i missed something so simple