【问题标题】:While Loop Won't loop C++While 循环不会循环 C++
【发布时间】:2013-02-08 22:06:26
【问题描述】:

我似乎无法弄清楚为什么这个 while 循环停止了循环。在我移动一些代码之前它做得很好。现在我得到了其他工作,它只是不循环。我还尝试将退出 bool 设置为 true 并尝试让它在它为 true 时循环,直到用户点击 4 退出,在这种情况下它会将其变为 false 但这不起作用。我还尝试在 showMenu 的函数中添加一个 while 循环,但这也没有用。我知道这一定很简单,我就是无法理解。 gggrrrr。

#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=0; 

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; 

【问题讨论】:

  • 与您的问题无关,这里至少还有一个主要错误:if(trans=DEPOSITE) 不是比较而是分配。

标签: c++ function loops parameters while-loop


【解决方案1】:

您在开关括号内返回 0,即在 while 循环内。更改它,以便在 while 循环之外返回 0。

【讨论】:

  • 是的,这是正确的答案。不是循环不起作用,而是函数过早结束。很好,我自己还在寻找错误。
猜你喜欢
  • 2022-11-03
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多