Мне было интересно об этой преждевременной и не слишком важной вещи. Я написал:
m_playerIndex = ++m_playerIndex % 2 // always either 0 or 1 (int)
для моей шахматной игры, чтобы убедиться, что другой игрок сделает следующий ход после только что сделанного хода. Однако это не совсем читабельно, не так ли?
Кроме того, он увеличивает переменную на 1, а затем вызывает оператор модуля 2 для адаптированной переменной, что означает, что у меня есть временная переменная, которую я назначаю m_playerIndex и сразу после его замены результатом% 2. Что будет наиболее эффективным? Это вариант 2, 1 или разницы нет вообще? (У меня пока нет программ для проверки этих вещей.)
1)
m_playerIndex = ++m_playerIndex % 2
2)
m_playerIndex = (m_playerIndex + 1) % 2