JavaScript 制御構造 新しいページはコチラ
提供: yonewiki
(→continue) |
(→continue) |
||
318行: | 318行: | ||
※書きかけの記事です。サンプルプログラムもラベルが見つからないというエラーが出る状態です。 | ※書きかけの記事です。サンプルプログラムもラベルが見つからないというエラーが出る状態です。 | ||
− | for構文などの繰り返し処理でcontinue;キーワードが記述されていると、繰り返し処理がまだ記述以降にあったとしても、for文の先頭に戻ります。強制頭出しみたいな感じです。さらに、continue (任意のラベル文字列);のような記述をすると(ラベル): | + | for構文などの繰り返し処理でcontinue;キーワードが記述されていると、繰り返し処理がまだ記述以降にあったとしても、for文の先頭に戻ります。強制頭出しみたいな感じです。さらに、continue (任意のラベル文字列);のような記述をすると(ラベル):のように記述があるところに次の命令処理場所が移動します。ただしラベルはfor文やwhile文のような繰り返し処理の前にしかつけられず、どの繰り返し先頭に戻るかを指定することしかできません。ラベルの記述は具体的には以下のようになります。 |
:var n = 0; | :var n = 0; | ||
− | |||
:document.write("処理やり直し"); | :document.write("処理やり直し"); | ||
+ | :'''head''': | ||
:for(var i = 0;i < 10;i++){ | :for(var i = 0;i < 10;i++){ | ||
::if(i > 5){ | ::if(i > 5){ | ||
329行: | 329行: | ||
::} | ::} | ||
:} | :} | ||
− | 上記の例の場合、任意で設定したheadがラベルです。nが2以下の間はhead: | + | 上記の例の場合、任意で設定したheadがラベルです。nが2以下の間はhead:に戻って処理がやり直される仕組みですが、戻り先は一番内側のfor文ですから、変数iの値がリセットされることはなく、ラベルを省いた場合と全く同じ処理になります。あんまりこういうプログラムを記述すると実行箇所があっちいったりこっちいったりして訳が分からなくなります。ラベルを利用した処理のJump処理を使わないようにすることが推奨されています。 |