如何简化if-else语句?

路易吉·伊特拉切斯库(Luigi Istratescu)

我完成了-非常菜鸟的创建,因为我仍然是菜鸟:(-充当银行帐户的程序。

我有main.cppAccount.cppAccount.h

main.cpp我有:

#include <iostream>
#include <string>
#include "Account.h"

int main()
{   
    Account Luigis;
    Luigis.set_name("Luigi's Account");
    Luigis.set_balance(0);
    std::string letter;
   
do  {
    std::cout << "Your current balance is: " << Luigis.get_balance() << std::endl;
    std::cout << "What would you like, to deposit, to withdraw or to exit?" << std::endl;
    std::cout << "(D for 'Deposit, W for 'Withdraw' and Q for 'Exit') D/W/Q ";
    std::cin >> letter;
    if(letter == "d" || letter == "D") {
        std::cout << "How much would you like to deposit?: ";
        double amountDeposit{};
        std::cin >> amountDeposit;
        Luigis.deposit(amountDeposit);
    }
        else if(letter == "w" || letter == "W") {
            std::cout << "How much would you like to withdraw?: ";
            double amountWithdraw;
            std::cin >> amountWithdraw;
            Luigis.withdraw(amountWithdraw);
        }
            else if(letter == "q" || letter == "Q") {
                std::cout << "Goodbye!" << std::endl;
            }
                else 
                std::cout << "Invalid selection, please try again with: D for Deposit, W for Withdraw, Q for Exist" << std::endl;
                
    
    } while (letter != "q" && letter != "Q");
    
    return 0;
}

Account.cpp我有:

#include "Account.h"
#include <string>
#include <iostream>
//IMPLEMENTATION or DEFINITION

bool Account::deposit(double amount) {
    //money you're doing to deposit
    balance = balance + amount;
    }

bool Account::withdraw(double amount) {
        //if you can withdraw
        if(balance-amount >= 0) {
             balance = balance - amount;
             return true;
            } else {
                std::cout << "You cannot withdraw the specified amount - balance is too low and it would result in " << balance - amount << " funds!" << std::endl;
                return false;
                }
        }
    
void Account::set_name(std::string name) {
        this->name = name;
        }

std::string Account::get_name(){
        return name;
        }

void Account::set_balance(double balance) {
        this->balance = balance;
    }

double Account::get_balance() {
        return balance;
    }

而且Account.h我有:

#ifndef _ACCOUNT_H_
#define _ACCOUNT_H_
#include <string>
//SPECIFICATION or DECLARATION


class Account
{
private:
    //attributes
    std::string name;
    double balance;
public:
    //methods
    bool deposit(double amount);
    bool withdraw(double amount);
    void set_name(std::string name);
    std::string get_name();
    void set_balance(double balance);
    double get_balance();
};

#endif // _ACCOUNT_H_

我的问题是:既然我“知道”如何使用函数现在如何简化if-else语句main.cpp我的朋友说,我应该能够使用函数并使事情更抽象,以避免编写所有ifandelse语句。

基本上,我将OOP与过程编程混合在一起,这违背了目的。

云诺什

我认为您对条件构造的复杂性有过大的印象。对于我(以及至少5个人,从评论和获得的“同意”来看),它们似乎并不过分复杂。

因此,我建议采取一些措施来改变您的印象,尽管它根本不会改变功能:
请使用一致且严格的缩进,实际样式无关紧要。
如果您允许我提出我最喜欢的样式,请参见以下示例:

if(letter == "d" || letter == "D")
{
    std::cout << "How much would you like to deposit?: ";
    double amountDeposit{};
    std::cin >> amountDeposit;
    Luigis.deposit(amountDeposit);
} else if(letter == "w" || letter == "W")
{
    std::cout << "How much would you like to withdraw?: ";
    double amountWithdraw;
    std::cin >> amountWithdraw;
    Luigis.withdraw(amountWithdraw);
} else if(letter == "q" || letter == "Q")
{
    std::cout << "Goodbye!" << std::endl;
} else 
{
    std::cout << "Invalid selection, please try again with: D for Deposit, W for Withdraw, Q for Exist"
              << std::endl;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何简化SQL语句

来自分类Dev

如何简化if语句yes

来自分类Dev

如何简化(循环)if else语句并获取mysql表列的名称(PHP)

来自分类Dev

如何简化 if/else 语句以在 pug/jade 中添加类?

来自分类Dev

使用空检查简化If / Else语句

来自分类Dev

简化嵌套的If ... Else语句;灵活的数组

来自分类Dev

if else语句简化以提高可读性

来自分类Dev

使用空检查简化If / Else语句

来自分类Dev

如何缩短if / else语句

来自分类Dev

如何使用多个或语句简化条件?

来自分类Dev

如何在Python 3中简化IF语句

来自分类Dev

如何简化SQL语句中的OR条件?

来自分类Dev

如何在此if / else语句中添加if / else语句?

来自分类Dev

简化/最小化Flask中的if else语句

来自分类Dev

与重启程序有关,并简化if else语句

来自分类Dev

使用不同的 List<> 简化 c# if/else 语句

来自分类Dev

围绕 Flask SqlAlchemy 查询简化一对 if-else 语句

来自分类Dev

简化if语句

来自分类Dev

如何简化try-catch中return的语句

来自分类常见问题

如何简化在不同密钥上的重复条件语句?

来自分类Dev

ES2015:如何简化带有赋值的if语句?

来自分类Dev

如何简化和增强多个if语句的使用?

来自分类Dev

如何简化此VBA switch语句以不重复太多代码?

来自分类Dev

如何在C#中简化big if语句?

来自分类Dev

Python:如何使用相同的try / except块简化多个语句

来自分类Dev

Javascript:如何简化具有多个OR条件的if语句?

来自分类Dev

如何使用SAS中的循环简化以下语句?

来自分类Dev

如何使用布尔代数简化多个 if-else 条件?

来自分类Dev

如何简化此代码并删除 if-else 块?