Хотя троичный оператор является хорошим сокращением, когда вы хотите встроить условное выражение в большее выражение, злоупотреблять им не стоит. Это может сделать вещи менее читабельными и не обязательно ускорить ваш код. Однако ...
Вы можете использовать оператор запятой для объединения выражений (значение будет тем из последнего). Ваш пример может быть переписан следующим образом:
minutes = (minutes < 59) ?
minutes + 1 :
( hours < 23 ?
(hours++, 0) :
(hours = 0) );
Хотя в приведенном вами примере использование оператора модуля для hours
может упростить его следующим образом:
hours = (minutes = (minutes + 1) % 60) ? hours : ((hours + 1) % 24);
.. поскольку результатом присваивания является значение, назначенное в C, и вы можете использовать его в качестве тестового выражения.
Это работает для C ... не уверен насчет Java.