一千萬個為什麽

搜索

當用戶輸入負數C ++時打破循環

做一個循環讓用戶輸入兩個輸入,它們將在函數中計算。該程序假設繼續運行,直到為價格或標記輸入負數。價格或負面標記的負數永遠不會發送到calcRetail函數。

我的代碼運行起來,直到我輸入標記的負數。循環繼續。我錯過了什麽,以便循環不僅在價格輸入為負數時結束,而且在為標記輸入負數時也結束。

double calcRetail(double x = 0.0, double y = 0.0)
{
    double retail = x * (1 + (y/100));
    return retail;
}
int main()
{
    double price = 0.0, markup = 0.0;
    while(price >= 0)
    {
        cout << "Enter the wholesale price of the item:" << endl;
        cin >> price;
        if(price >= 0)
        {
            cout << "Enter the percent markup of the item:" << endl;
            cin >> markup;

            cout << "$" << calcRetail(price,markup) << endl;
        }
    }

    return 0;
}

最佳答案

休息時間被一些開發人員所詬病。像這樣的東西可以:

bool isLooping = true;
while (isLooping)
{
    cout << "Enter the wholesale price of the item:" << endl;
    cin >> price;

    if ( price >= 0 )
    {
        cout << "Enter the percent markup of the item:" << endl;
        cin >> markup;

        if (markup >= 0) cout << "$" << calcRetail(price,markup) << endl;
        else isLooping = false;
    }
    else isLooping = false;
}

轉載註明原文: 當用戶輸入負數C ++時打破循環