c++ - 时间类的 For 循环

标签 c++ for-loop

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

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

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

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

最佳答案

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

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

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

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

编辑: 这是它如何工作的一些解释。 m/60 的作用称为整数除法。它返回表达式的底部。例如,如果 m = 131 而不是 m/60 = 2

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

关于c++ - 时间类的 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551070/

相关文章:

c++ - 从不动点计算平方根

c++ - 传递 "shared"指针的 OpenMP 任务

javascript - 在指定之前不要继续 Javascript for 循环

linux - 在管道 awk 输出上打印循环输入文件名

linux - 如何打印文件名从...到

在 Windows : memory leak? 上重复数百次后 C++ 屏幕捕获失败

c++ - 使用带有 '>>' 运算符的 std::istringstream 的奇怪行为

c++ - 关于在需要常量表达式的上下文中使用的泛左值常量表达式的问题

c++ - 函数名和花括号之间成员变量赋值的名称和原因是什么?

php - 拆分数组以在另一个数组中使用时出现问题