3

配列があり、その中の位置を後方にスクロールしたい。

私はブール配列を持っており、特定のセルから前後にいくつの true があるかを数える必要があります。

N が配列の要素数である場合、i=(i+1)%N を実行できることはわかっています。しかし、逆にスクロールする必要がある場合はどうすればよいでしょうか?

前もって感謝します。

4

4 に答える 4

11

私は通常i = (i - 1 + N) % N、負の値を防ぐために使用します。

于 2013-03-17T15:53:52.857 に答える
1

これはそれを行う必要があります:

i--;
if (i == -1)
  i = N-1;

または1行で:

i = ((i-1 == -1) ? N-1 : i-1);

しかし、上記のノイズのバリエーションはおそらく優れています。関連する if ステートメントのバージョン:

if (i == 0)
  i = N-1;
else
  i--;

関連する 1 行バージョン:

i = (i == 0 ? N-1 : i-1)
于 2013-03-17T15:52:19.857 に答える
1

どうi = (i == 0 ? N : i) - 1ですか?

于 2013-03-17T15:52:48.837 に答える