<script> var name = ""; var right = false; do{ name = window.prompt("リンゴを英語で書くと何ですか?"); if(name == “apple”){ right = true; } }while(right == false); document.write("リンゴを英語で書くと" + name + "です。"); </script>
今回はdo-whileを利用しています。
do-whileはwhileの後にある()内の条件を満たしている限りは繰り返すという処理となり、今回はright変数に入れた値がtrue(真:正しいという意味)であれば繰り返し処理を抜けることができます。
処理の初めに変数rightにfalse(偽:正しくないという意味)の値を入れておき、do-whileの処理を開始します。繰り返し処理の途中で入力フォームを表示して、値を入力してもらいます。入力した値が正しいかどうかはif文で判定して、正しければ変数rightにtrueを入れることによって、繰り返し処理を抜けることができます。
(変数 == 値のように==にすると右の値と左の値が等しいかを調べます)
rightのように処理が正しいかを調べてその状況を残しておくための変数をフラグと呼びますが、繰り返し内で期待する処理が終わるまで何度のトライさせるためにフラグとdo-whileの組み合わせを行うことが有効です。
フラグを使わない処理として、
<script> var name = ""; do{ name = window.prompt("リンゴを英語で書くと何ですか?"); }while(name == "apple"); document.write("リンゴを英語で書くと" + name + "です。"); </script>
このようにwhileで直接name変数内の値を判定する方法も有りです。<
今までの話はdo-while文で処理を行ってから条件により繰り返しを抜けるか判定していましたが、
<script> var count = 5; //countの中身が5未満の場合なら{}の中の処理を実行する while(count < 5){ document.write(count + "です"); count++; } </script>
処理を行う前にwhileを持ってきて判定することも可能です。
0 件のコメント:
コメントを投稿