-
How to do this
Here is the code I have written so far. It's just an exercise but there is one thing I'm struggling with.
Code:
// Practise Exercise
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int acc_number;
float Bbalance;
float charges;
float credits;
float limit;
float Ebalance;
while ( acc_number != -1 )
{
// Get the info
cout << "Enter account number (-1 to end): ";
cin >> acc_number;
cout << "Enter beginning balance: ";
cin >> Bbalance;
cout << "Enter total charges: ";
cin >> charges;
cout << "Enter total credits: ";
cin >> credits;
cout << "Enter credit limit: ";
cin >> limit;
// Calculation
Ebalance = Bbalance + charges - credits;
// if credit limit is exceeded display the following
if ( Ebalance > limit )
{
cout << fixed << setprecision( 2 );
cout << "Account:\t\t" << acc_number << '\n'
<< "Credit limit:\t\t" << limit << '\n'
<< "Balance:\t\t" << Ebalance << '\n'
<< "Credit Limit Exceeded.\n" << endl;
}
else
cout << endl;
}
cin.get();
return 0;
}
Now if you'll turn your attention to the while loop you'll notice the condition. For the loop to break a person needs to input -1 into the int acc_number. The thing is, this is only tested at the start of the loop which means that if a user inputs -1 the rest of the loop will continue and will only break once it's reached the end and checks the condition. I've sat for a while trying to figure out how to work around this, but the exercise states I need to use a while loop. I need the loop to break the second -1 is entered by the user into acc_number. Any suggestions?
-
Code:
.......
while ( acc_number != -1 )
{
// Get the info
cout << "Enter account number (-1 to end): ";
cin >> acc_number;
//you may be able to just put 'continue;' right here and take out the conditional statement.. I'm at the wrong computer, no compiler
if (acc_number == -1)
break; //exits the loop
.......
Try the 'continue;' and see if that works, it's not necisarally faster because continue checks the while loop's parameters but it looks beter, and it's easier to manage.
-
Code:
while ( acc_number != -1 )
{
// Get the info
cout << "Enter account number (-1 to end): ";
cin >> acc_number;
if ( acc_number == -1 )
break;
I had thought of doing something like that, but then it makes the while's condition a bit pointless. Is this the way to do it or can anyone think of something better?
-
Code:
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int acc_number;
float Bbalance;
float charges;
float credits;
float limit;
float Ebalance;
// Get the info
cout << "Enter account number (-1 to end): ";
cin >> acc_number;
while ( acc_number != -1 )
{
cout << "Enter beginning balance: ";
cin >> Bbalance;
cout << "Enter total charges: ";
cin >> charges;
cout << "Enter total credits: ";
cin >> credits;
cout << "Enter credit limit: ";
cin >> limit;
// Calculation
Ebalance = Bbalance + charges - credits;
// if credit limit is exceeded display the following
if ( Ebalance > limit )
{
cout << fixed << setprecision( 2 );
cout << "Account:\t\t" << acc_number << '\n'
<< "Credit limit:\t\t" << limit << '\n'
<< "Balance:\t\t" << Ebalance << '\n'
<< "Credit Limit Exceeded.\n" << endl;
}
else
cout << endl;
// Get the info
cout << "Enter account number (-1 to end): ";
cin >> acc_number;
}
cin.get();
return 0;
}
-
Sometimes I just wanna smack myself with something hard. Thanks so much Omnibus. I'm working through some exercises and it's late. Such a logical thing and I didn't think of it. At least I know now for the future! :D