For 循环一段时间 Class

For Loops for a Time Class

我正在尝试编写一个 for 循环一段时间 class。如果输入的分钟数超过 60,则从总分钟数中减去 60,小时数增加 1,直到最后剩下的分钟数小于 60。我在做 if 语句,比如

if (m > 59){
    m = m - 60;
    h++;      

    if (m > 59)... etc..

但这并没有涵盖所有情况,我觉得我应该知道如何为循环执行此操作,但我无法弄清楚。任何帮助将不胜感激,谢谢

好吧,如果它不必使用循环来实现,你可以简单地做

h = m / 60;
m = m % 60;

我想这是最快最干净的方法。

不太确定是否要在循环内执行任何其他操作。如果是这样,这对你帮助不大。

编辑: 这是它如何工作的一些解释。 m / 60 所做的称为整数除法。它returns楼的表达方式。例如,如果 m = 131m / 60 = 2.

第二个表达式使用模运算符。基本上它会在划分后找到提醒。回到我们的例子,m % 60 = 11 因为 m 可以写成 m = 60 * 2 + 11 = 131。更多信息请参考wiki.

@Jendas 对整个问题有一个很好的简单答案,但是如果你想保持这种格式但用循环解决你的问题,你可以把整个事情放在一个 while 循环而不是单独的 if 语句中:

while(m >59)
{
    m = m - 60;
    h++;
    // do anything else you need to take care of
}
// finishing statements
h = 0;  
while (m >= 60)
{
    m = m - 60;
    h++;
}

您可能想使用 >= 60 而不是 59。 此外,正如 Jendas 正确建议的那样,您可能想研究一下模数运算符 '%'