Ваш &
выполняет побитовое &
нового значения minute
с second % 60
, что вряд ли будет хорошей идеей.
Учитывая, что вы хотите побочный эффект Я бы настоятельно рекомендовал не использовать условный оператор здесь - просто используйте оператор if
:
if (second > 60)
{
minute += second / 60;
second = second % 60;
}
(Если вам нужно обрабатывать отрицательные значения, вам, вероятно, понадобится больше кода - это зависит от какой результат вы хотите.)
Урок, который нужно здесь извлечь, заключается в том, что условный оператор используется для вычисления значения . В вашем случае вы действительно заинтересованы в выполнении действий вместо вычисления значения: «если переменная second
еще не нормализована, внесите изменения как в second
, так и minute
». Это должно заставить вас думать об операторе if
, а не об условном операторе. Существует множество случаев, когда вы можете использовать условный оператор, но было бы яснее использовать оператор if
.