1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

C++ While Loop Won't Loop

Discussion in 'Programming & Webmastering' started by AphexDreamer, Feb 23, 2013.

  1. AphexDreamer

    AphexDreamer

    Joined:
    Jun 17, 2007
    Messages:
    7,085 (2.70/day)
    Thanks Received:
    913
    Location:
    C:\Program Files (x86)\Aphexdreamer\
    [SOLVED]

    I can't seem to figure out why this while loop stopped looping. It was doing fine before I moved some code around. Now I got something else working and it just doesn't loop.:confused:

    Code:
    
    #include "stdafx.h"
    #include <iostream>
    #include <iomanip>
    
    using namespace std;
    
    enum transType { SETUP=1, DEPOSITE, WITHDRAW, EXIT};
    
    int showMenu(double balance);
    double transaction(double amount, double balance, transType trans);
    
    int menuSwitch;
    int quit;
    
    int _tmain(int argc, _TCHAR* argv[]){
       
        int amount=0,balance=0;
        while(quit!=4){
    
        showMenu(balance);
        switch (menuSwitch){
            case DEPOSITE:
                cout<<"Enter the amount of deposit: ";
                cin>>amount;
                cout<<"Your current balance is: "<<transaction(amount,balance,DEPOSITE)<<endl<<endl;
                break;
            case WITHDRAW:
                cout<<"Enter the amount of withdraw: ";
                cin>>amount;
                if(amount>balance){
                    cout<<"*** Insufficient funds."<<"Your current balance is: "<<transaction(amount,balance,WITHDRAW)<<endl<<endl;
                }
                else cout<<"Your current balance is: "<<transaction(amount,balance,WITHDRAW)<<endl<<endl;
                break;
            case EXIT:
                cout<<"Have a Nice Day."<<endl;
                quit=4;
                break;
    
        }
       
        return 0;
    }
    }
    int showMenu(double balance){
        // while(quit==true){
        cout<<"Your Online Checking Account System"<<endl;
        cout<<"-------------------------------------------"<<endl;
        cout<<"Select an option:"<<endl<<endl;
        cout<<"  1. Set up the account."<<endl;
        cout<<"  2. Deposit Funds into your Account."<<endl;
        cout<<"  3. Withdraw Funds out of your Account."<<endl;
        cout<<"  4. Exit"<<endl;
        cout<<endl<<">>";
        cin>>menuSwitch;
        switch (menuSwitch){
            case SETUP:
                cout<<"Enter the balance: ";
                cin>>balance;
                cout<<endl<<"Your current balance is: "<<balance<<endl<<endl;
                break;
        }
    
        return balance;
        // }
    }
    double transaction(double amount, double balance, transType trans){
        double withdraw = balance-amount;
        double deposite = balance+amount;
        if(trans=DEPOSITE){
            return deposite;
        }
        else
            return withdraw;
       
        
        
       
           
    }
        //return balance;
    
    Last edited by a moderator: Dec 5, 2013
  2. de.das.dude

    de.das.dude Pro Indian Modder

    Joined:
    Jun 13, 2010
    Messages:
    7,561 (4.94/day)
    Thanks Received:
    1,966
    i think something is wrong with your switch statement.
    it seems to be selecting the "Case EXIT " everytime.

    try using a default case ;

    HTML:
    switch (menuSwitch){
    		case DEPOSITE:
    			cout<<"Enter the amount of deposit: ";
    			cin>>amount;
    			cout<<"Your current balance is: "<<transaction(amount,balance,DEPOSITE)<<endl<<endl;
    			break;
    		case WITHDRAW:
    			cout<<"Enter the amount of withdraw: ";
    			cin>>amount; 
    			if(amount>balance){
    				cout<<"*** Insufficient funds."<<"Your current balance is: "<<transaction(amount,balance,WITHDRAW)<<endl<<endl; 
    			}
    			else cout<<"Your current balance is: "<<transaction(amount,balance,WITHDRAW)<<endl<<endl;
    			break;
    		case EXIT:
    			cout<<"Have a Nice Day."<<endl;
    			quit=4;
    			break;
                           default: cout<<"default";

    this way you will know if its having some logical problem there :)


    i just noticed that you dont seem to be taking the input for menuSwitch at the end of each case.


    also you can run the while loop with menuSwitch by : while(menuSwitch!=0)
    where "0" corresponds to exit.


    also menuSwitch is declared an integer, but in the cases you seem to be using it as a string? that would explain your switch error
  3. syeef

    Joined:
    Jul 5, 2008
    Messages:
    287 (0.13/day)
    Thanks Received:
    68
    Try removing from the loop:
    Code:
    return 0;
    AphexDreamer says thanks.
  4. AphexDreamer

    AphexDreamer

    Joined:
    Jun 17, 2007
    Messages:
    7,085 (2.70/day)
    Thanks Received:
    913
    Location:
    C:\Program Files (x86)\Aphexdreamer\
    lol thanks.
  5. OnePostWonder

    Joined:
    Dec 27, 2008
    Messages:
    580 (0.28/day)
    Thanks Received:
    107
    Just something to keep in mind for next time. When you edit your original post to remove all the info and put in its place "solved", it doesn't do much to help someone having the same issue. People's replies might still help, but it's nice to compare the original problem to one's own.

    I'm not doing any programming in C++, I'm just saying it would be better practice to put in bold at the front of the post "Solved" and leave the rest.

    Either way, 'glad you were able to resolve your issue!
    ste2425 and CrackerJack say thanks.
  6. Jimmy6

    Jimmy6

    Joined:
    Nov 12, 2013
    Messages:
    74 (0.26/day)
    Thanks Received:
    2
    You return 0 within the switch brackets, ie inside the while loop. Change it so that you return 0 outside of the while loop.
  7. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (5.04/day)
    Thanks Received:
    5,615
    Location:
    Cheeseland (Wisconsin, USA)
    You are right, OPW. I put back the original for future reference and marked it solved in the OP.
    Happy coding, all.

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page