整数を出力する次の基本的なループがあるとします。
for (var i = 0; i < 6; i++) {
echo i;
}
/* Output: 0 1 2 3 4 5 */
を使用せずに、値がまたはのみで5 4 3 2 1 0
ある単純な変数を使用して出力を「反転」することは可能ですか?flag
1
-1
if/else
主に JavaScript での回答を探していますが、これは言語に依存しない質問である必要があります。
整数を出力する次の基本的なループがあるとします。
for (var i = 0; i < 6; i++) {
echo i;
}
/* Output: 0 1 2 3 4 5 */
を使用せずに、値がまたはのみで5 4 3 2 1 0
ある単純な変数を使用して出力を「反転」することは可能ですか?flag
1
-1
if/else
主に JavaScript での回答を探していますが、これは言語に依存しない質問である必要があります。
として開始点を計算できます5 * (1 - flag) / 2
。終了点の条件で使用するのと同様の方法で値を計算できますが、常に同じものをループし、ループ変数から実際の値を計算する方が簡単です。
start = 5 * (1 - flag) / 2;
for (var i = 0; i < 6; i++) {
echo start + i * flag;
}
0 -> 5 をマップする方法を知る方法がないため、範囲 N を知る必要があります。
echo ((flag-1)/2)*(-N+1) + (flag*i)
三項演算子の使用(フラグをtrueまたはfalseとして使用):
var max_number = 5;
var min_number = 0;
var flag = true;
for(var i = (flag ? min_number : max_number);
(flag ? i < max_number : i > min_number);
(flag ? ++i : --i)){
console.log(i);
}
デモ: http: //jsfiddle.net/maniator/b26T8/