配列があり、その中の位置を後方にスクロールしたい。
私はブール配列を持っており、特定のセルから前後にいくつの true があるかを数える必要があります。
N が配列の要素数である場合、i=(i+1)%N を実行できることはわかっています。しかし、逆にスクロールする必要がある場合はどうすればよいでしょうか?
前もって感謝します。
配列があり、その中の位置を後方にスクロールしたい。
私はブール配列を持っており、特定のセルから前後にいくつの true があるかを数える必要があります。
N が配列の要素数である場合、i=(i+1)%N を実行できることはわかっています。しかし、逆にスクロールする必要がある場合はどうすればよいでしょうか?
前もって感謝します。
私は通常i = (i - 1 + N) % N
、負の値を防ぐために使用します。
これはそれを行う必要があります:
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)
どうi = (i == 0 ? N : i) - 1
ですか?