0

私は問題があります。

変数値を4ずつ増やす(インクリメントする)Javascript関数が必要です。変数値が20の場合、変数の値を0に設定し、再び4ずつインクリメントします。

forループとif条件が必要だと思いますが、これを実装する方法がわかりません...

結果は次のようになります。

x = 0; 次に、x = 4、x = 8、x = 12、x = 16、x = 20、x = 0、x =4...。

ありがとうございました

4

5 に答える 5

5

これは、ネストされたループのペアを使用して行うことができます。

while (true) {
    for (var x = 0; x <= 20; x += 4) {
        // use x
    }
}

%これは、mod( )演算子を使用するよりも効率的です。

編集

あなたのコメントから、あなたはループではなく、インクリメンタルにシーケンスを生成したいように思えます。これは、呼び出すたびにシーケンスの次の要素を生成する関数を返す関数です。

function makeSequence() {
    var x = 20; // so it wraps to 0 first time
    return function() {
        if (x == 20) { x = 0 }
        else { x += 4 }
        return x;
    }
}

次に、次のように使用できます(多くの方法の中で):

var sequence = makeSequence();

// and each time you needed the next element of the sequence:

var x = sequence();
于 2012-08-01T06:03:28.107 に答える
4

これは、加算演算子とモジュラスの組み合わせで簡単に解決でき%ます。

x = 0;
//loop
x = (x+4)%24; 

デモ: http: //jsbin.com/okereg/1/edit

于 2012-08-01T06:04:17.420 に答える
2

以下が役立ちます

function fnAddVal(val) {
     if (val >= 20)
            return 0;
     else
       return val+4;

}
于 2012-08-01T06:05:27.293 に答える
2

単純!

x = (x + 4) % 24;

無限ループが必要ですか?何?

于 2012-08-01T06:06:36.857 に答える
1

ループには次のようなものを試すことができます。

<html>
<body>
<script language="javascript">
int x = 0;
while ( x <= 20 ) 
{
    alert("The number is " + x)
    if ( x >= 20 ) 
    {
        x = 0;
    }
    x += 4;
}
</script>
</body>
</html>
于 2012-08-01T06:06:35.787 に答える