2017-06-11 4 views
4

JSでは、私はfor(;;)のループの種類を見つけたので、while(true)ループのように機能します。このforループの括弧の中でセミコロンは何をしますか?For(;;)ループの説明

+0

どのような回答が受け入れられますか?いくつかの良い答えがあります – user7294900

+0

RTFM:https://www.w3schools.com/js/js_loop_for.asp –

答えて

7
for (statement 1; statement 2; statement 3) { 
    code block to be executed 
} 

ステートメント1はオプションであり、ループ(コードブロック)が開始される前に実行されます。

var i = 0; 
var length = 10 
for (; i < length; i++) { 

    //The for loop run until i is less than length and you incerement i by 1 each time. javascript doesnt care what you do inside, it just check whether you have variable with name i and length 
} 

文2は、ループ(コードブロック)を実行するための条件を定義します。

var i = 0; 
var len = 100; 
for (i = 5; ; i++) { 
    //Here you are just initializing i with 5 and increment it by 1 there is no break condition so this will lead to an infinite loop hence we should always have a break here somehwere. 
} 

ステートメント3はオプションであり、ループ(コードブロック)が実行されるたびに実行されます。ナットシェルで

var i = 0; 
var length = 100; 
for (; i < length;) { 
    //Here you are just checking for i < length which is true. If you don't increment i or have an break it will turn into infinite loop 
} 

あなたは何の条件や初期のを持っていないときには、無限ループになります。

3

まず半セミコロンが初期化ステートメントを終了

第二半セミコロンは、あなたのケースでは、条件チェック声明

を終了し、両方の文(すべてのループなしの初期化とは何もチェックしない)空になっているん

3
for (init; condition; increment) 
{ 
    statement(s); 
} 

ここにありますforループにおける制御の流れ:

ステップが最初に実行され、1回だけ実行されます。このステップでは、ループ制御変数を宣言して初期化することができます。セミコロンが表示されている限り、ここに声明を書く必要はありません。

次に、の条件が評価されます。 trueの場合、ループの本体が実行されます。 falseの場合、ループの本体は実行されず、制御の流れはforループの直後の次のステートメントにジャンプします。

forループの本体が実行された後、制御の流れがのインクリメントステートメントまでジャンプします。このステートメントでは、ループ制御変数を更新できます。このステートメントは、条件の後にセミコロンが表示されている限り、空白のままにすることができます。

条件が再評価されるようになりました。 trueの場合、ループが実行され、プロセスが繰り返し実行されます(ループ本体、ステップが増分された後、再び条件がテストされます)。条件がfalseになると、forループは終了します。

1

私はちょうど推測をとるつもりです。 は通常、ループのためにこのようなことかもしれません:ループ条件が常に満たされているので

for (i = 0; i < 10; i++) 

ので、基本的に

for (;;) 

は、永遠に十分です。

for (INITIALIZATION; CONDITION; AFTERTHOUGHT) 
{ 
} 

あなたはこれらの部品を省略した場合、全体として評価されます:

for(; true ;) 
{ } 

初期化をして考えた後、単に無視されているループの

3

ザ・は、3つの部分から構成されています。

4

通常、ループヘッダの3部含まれています。あなたが最初に、変数を初期化状態を確認し、それが本当であれば、その後、iをインクリメント、ループ本体が言うものは何でも

for (var i = 0 ; i < 10 ; i++) 
// ^^^^^^^^^ ^^^^^^ ^^^ 

を。

あなたが知りたくないことは、forループヘッダーの任意の部分を省略できることです。最初の部分が省略された場合、変数は初期化されません。 2番目の部分が省略されている場合、条件チェックはありません。条件が真であると常に仮定します。

したがってfor(;;)は、forループヘッダーの条件部分を省略したため、基本的には無限ループです。毎回、条件が真であるので、それは永遠に続きます。