1

整数を出力する次の基本的なループがあるとします。

for (var i = 0; i < 6; i++) {
    echo i;
}

/* Output: 0 1 2 3 4 5 */

を使用せずに、値がまたはのみで5 4 3 2 1 0ある単純な変数を使用して出力を「反転」することは可能ですか?flag1-1if/else

主に JavaScript での回答を探していますが、これは言語に依存しない質問である必要があります。

4

3 に答える 3

7

として開始点を計算できます5 * (1 - flag) / 2。終了点の条件で使用するのと同様の方法で値を計算できますが、常に同じものをループし、ループ変数から実際の値を計算する方が簡単です。

start = 5 * (1 - flag) / 2;
for (var i = 0; i < 6; i++) {
  echo start + i * flag;
}
于 2012-12-24T15:46:20.990 に答える
2

0 -> 5 をマップする方法を知る方法がないため、範囲 N を知る必要があります。

echo ((flag-1)/2)*(-N+1) + (flag*i) 
于 2012-12-24T15:49:38.097 に答える
-4

三項演算子の使用(フラグを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/

于 2012-12-24T15:43:22.620 に答える