从一个if语句转到另一个

时间:2017-10-17 22:01:40

标签: c++ if-statement

if (...)                     //enough for promo
{
    if (...)                 //accept offer
    **promo sequence**
    else (...)               //doesn't accept offer (regular purchase)
    **regular sequence**
}
else (...)                   //not enough for promo
**regular sequence**

我还是编程新手。我被赋予了在循环中编写程序的任务。顾客可以购买邮票。如果他有足够的邮票,他就可以获得免费物品。但是,如果他否认要约,则成为常规购买,邮票数量进一步增加。我成功地编写了工作程序(虽然它很长),如果它有帮助我可以将它粘贴在这里。

问题是:如果客户不接受报价(而不是重写常规序列),我可以以某种方式进入常规序列吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您是否尝试过合并两次if-checks?如果您反对为promo sequenceregular sequence创建函数,则可以将if语句的逻辑组合到一个组合的检查中:

if (... && ...) //enough for promo and accept offer
    **promo sequence**
else            //not enough for promo or doesn't accept offer (regular purchase)
    **regular sequence**

答案 1 :(得分:1)

有几种选择。如frslm建议的那样,你可以把它变成单一的。有时,提供和接受促销的逻辑太难以放入单个if语句中。在这种情况下,您可以使用bool作为标志,指示促销是否被接受:

bool accepted_promo = false;
if (...)                     //enough for promo
{
    ** steps to offer and accept a promo offer **
    if (...)                 //accept offer
    {
        **promo sequence**
        accepted_promo = true;
    }
}

if (!accepted_promo) 
    **regular sequence**