2016-02-29 12 views
-2

Не могли бы вы объяснить мне это:При нажатии кнопки Next

mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length; 

QuestionBank массив с некоторыми DATAS.

Я понимаю первую часть, что означает увеличение currentIndex, но что следующий% Questionbank.length ??

Заранее спасибо

+1

Это оператор остаточного/модульного деления - дает вам остаток – Prokurors

+0

ok currentIndex = 0 и aray.length, равный 5, а затем после кода выше mCurrentIndex будет равен? – newbie

ответ

2

mCurrentIndex могут быть некоторые indexnumber массива добавления 1 сделать номер элемента, как если mCurrentIndex = 1 затем (mCurrentIndex+1) сделать это 2, то % означает, что модуль оператор также остается оператором. Этот модуль с длиной массива ограничивает уравнение, которое после значения инкремента не может превышать длину.

+0

ok currentIndex = 0 и aray.length, равный 5, а затем после кода выше mCurrentIndex будет равен 2 ?? – newbie

+1

нет (0 + 1)% 5 вернется 1 –

+0

ОК, я получил его, поэтому (1 + 1)% 5 вернет 2, (2 + 1)% 5 = 3 спасибо и что насчет этой формулы: x% y => x - (r * y) = zx/y = r, s, например, 3% 5 и 3/5 = 0,6, тогда z = 3- (0 * 5) = 3 lol – newbie

2

Это модуль. В основном он делит на длину и берет оставшуюся часть результата. Этот код будет в основном увеличиваться mCurrentIndex и обернуть его до 0, если он станет слишком большим для array.

0

Это слишком важно, чтобы он не переполнялся. Если массив был длиной 10, и вы пытались использовать индекс 10, то вместо этого изменить его на 0

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