虽然循环没有开始显示在5,从输入开始,C ++

时间:2016-02-19 09:04:57

标签: c++ while-loop

我的c ++程序中的while循环出现问题。它运行,但我试图让它从5开始(需要以5为增量显示数字)而不是我的输入数字。这是循环:

    while (minutes <= 25) // max number displayed 25, minutes is my own input between 5 - 25
{
    caloriesBurn = minutes * burnperMin; // calculating calories burned
    if (minutes%5 == 0) // determining if number is divisible by 5
    {
        cout << minutes << "        " << caloriesBurn << endl; 
    }

    minutes++;
}

截至目前,如果我输入15,它将显示从15开始,然后转到20然后是25(就像我想要的那样)但我总是希望它从5开始,直到我的输入(15)。所以,基本上它显示的是与我想要的相反。

3 个答案:

答案 0 :(得分:1)

for (int m = 5; m <= minutes; m += 5)
{
     caloriesBurn = m * burnperMin; // calculating calories burned
     cout << m << "        " << caloriesBurn << endl; 
}

答案 1 :(得分:0)

改为使用for (minutes = 5; minutes <= 25; minutes += 5),并删除循环体末尾的minutes++;以及现在冗余的可分性检查。

如果您需要保留while,那么重构为等效

minutes = 5;
while (minutes <= 25){
    /* loop body*/
    minutes += 5;
}

答案 2 :(得分:0)

假设我正确理解你的问题,就像你想要条件一样,(尽可能保持你的代码)

int minutes = 5;
while (minutes < 25 && minutes < userInput) {
    caloriesBurn = minutes * burnperMin; // calculating calories burned
    cout << minutes << "        " << caloriesBurn << endl;
    minutes += 5;
} 

这假设您希望它显示在5,10,...分钟燃烧的卡路里,最多可达到用户定义的时间,最长25分钟。