2015-11-28 4 views
-1

Простой задача - приращение целого числа в диапазоне от 1 до 4, начального значения 1:Приращение целого числа в диапазоне без условных операторов

i = (i + 1) < 5 ? i + 1 : 1

Тем не менее, я хотел бы сделать это без условного, так что я подумал, КИ, то % этого решения, % 4 даст мне от 0 до 3, добавьте 1, и это делается:

i = (i + 1) % 4 + 1

однако, это выражение производит только значение 3 и 1. С начальным значением 1 2 % 4 является 2, добавить 1 для конечного результата 3. И 3 4 % 4 является 0, добавьте 1, и мы вернулись к 1.

Итак, можно сделать это в одном выражение без условных операторов?

ответ

0

мод оператор на самом деле это простой, но мощный выражение

А = - ((A/MOD) × MOD)

если вы MODIF это так, вы можете получить то, что вы хотите

A = A + 1 - ((A/MOD) × MOD)

Обратите внимание, что когда вы делите A на MOD, я предполагаю, что результат будет отлит от целого. Например, 1/4 = 0,25, после отливки целое число равно 0.

 Смежные вопросы

  • Нет связанных вопросов^_^