3

FORステートメントのコンマ演算子について説明してもらえますか?

function funct_1(c){
    for (var a = x, e = y; 0 < c; ){ 
         var p = c/2;
         var c = c/10; // wtf, it is already defined as function argument!!
    }
}

また、「a++」のような最後のステートメントが欠落しているようです。このようなものは見たことがありません。どういう意味ですか?ありがとう!

4

3 に答える 3

2

コンマは、複数の宣言の区切りを追加するだけです。言い換えれば、あなたのforループはに等しいだけでなく、 にa等しく設定されています。xey

インクリメント ステートメントがないということは、forループが変数を明示的にインクリメントしないことを意味します。

于 2012-01-23T02:41:10.800 に答える
2

コンマを使用すると、ループの開始時に複数の変数を初期化できます。また、インクリメント演算子がないということは、最終的に終了条件を満たすスクリプトがループ内にある必要があることを意味します。そうしないと、ループは完了しません。

于 2012-01-23T02:41:21.877 に答える
0

C、C++、および JavaScript (おそらく C#) のコンマ演算子は、次のように機能します。

comma_operator(statement_1, statement_2) {
     execute statement_1
     return statement_2
}

したがって、ループでは、2 つの整数値aおよびが初期化され、それぞれおよびにe設定されます。ループは と比較しているため、インクリメントはありません。ループ内のどこかに設定されている可能性があります。xyc

于 2012-01-23T02:40:59.313 に答える