ループを脱出する
これまでにfor文とwhile文の例で、指定した回数だけ処理を繰り返していました。ですが、何か条件を満たした時のみループを中断したい場合があります。そのようなときにswitch文で出てきたbreak文を使います。条件判断はループ内のブロック内でif文を使って行います。
実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>break文</title> </head> <body> <script> var answer = 1; var num = 0; var msg = "数字を入力してください"; while(true){ num = prompt(msg,0); //答えと入力した数字が同じ場合 if( num == answer){ document.write("正解です。"); //ループを抜ける break; } } </script> </body> </html> |
サンプルコードをすると分かりますが、数値の入力を促されます。そして1以外の数値をいれると何度でも数値をいれるように言われます。
1をいれるとループを抜けて終了です。簡単な数字当てゲームができます。
無限ループとbreak文
whileの条件式に「true」と書くと、常に条件が満たしている状態になります。ループを永遠に繰り返す無限ループの状態となります。無限ループのままだと処理が終わらないので、ブロック内にif文とbreak文を書く必要があります。
条件式について
if,for,while文に記述する条件式は、どんなときに成立(true)になるのか?結果だけをいうと、「0」「false」「undefined」「空文字列(長さ0の文字列)」の値以外であれば、条件は成立します。while( 1 ){}と書けば無限ループができます。