首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于时间类的循环

用于时间类的循环
EN

Stack Overflow用户
提问于 2015-02-16 21:58:29
回答 3查看 52关注 0票数 1

我正试图为一个时间类编写一个for循环。如果输入的分钟超过60分钟,则从总分钟中减去60分钟,并将小时增加1,直到最后的分钟数小于60分钟为止。我在做如果像这样的声明

代码语言:javascript
运行
复制
if (m > 59){
    m = m - 60;
    h++;      

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

但这并不能涵盖每一种情况,我觉得我应该知道如何为循环做这件事,但我无法弄清楚。任何帮助都将不胜感激,谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-16 22:02:42

如果不需要使用循环来实现,那么您可以简单地执行

代码语言:javascript
运行
复制
h = m / 60;
m = m % 60;

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

不太确定你是否想在循环中做任何其他的事情。如果是这样的话,这对你不会有多大帮助。

编辑:在这里对它的工作原理做了一些解释。m / 60所做的被称为整数除法。它返回表达式的底部。例如,如果m = 131而不是m / 60 = 2

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

票数 3
EN

Stack Overflow用户

发布于 2015-02-16 22:02:48

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

代码语言:javascript
运行
复制
while(m >59)
{
    m = m - 60;
    h++;
    // do anything else you need to take care of
}
// finishing statements
票数 0
EN

Stack Overflow用户

发布于 2015-02-16 22:08:12

代码语言:javascript
运行
复制
h = 0;  
while (m >= 60)
{
    m = m - 60;
    h++;
}

您可能希望使用>= 60而不是59。此外,正如Jendas正确的建议,您可能需要对模量运算符'%‘进行一点研究。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28551070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档