虽然循环未启动显示 5,但从输入开始,C++

While loop not starting display at 5, starting with input, C++

本文关键字:开始 C++ 输入 循环 启动 显示      更新时间:2023-10-16

我的 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)。所以,基本上它显示的与我想要的相反。

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

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

如果需要保留while则重构为等效项

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

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

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

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