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 = 131
比 m / 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 正确建议的那样,您可能想研究一下模数运算符 '%'
我正在尝试编写一个 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 = 131
比 m / 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 正确建议的那样,您可能想研究一下模数运算符 '%'