JavaScript do...whileループ

概要: このチュートリアルでは、JavaScriptのdo...whileステートメントを使用して、条件がfalseになるまでブロックを実行するループを作成する方法を学びます。

JavaScript do...whileステートメントの紹介

do...whileループステートメントは、条件がfalseと評価されるまでブロックを実行するループを作成します。次のステートメントは、do...whileループの構文を示しています。

do {
  statement;
} while(expression);Code language: JavaScript (javascript)

whileループとは異なり、do-whileループは、を評価する前に、常に少なくとも1回はステートメントを実行します。

do...whileループは各反復後に式を評価するため、ポストテストループと呼ばれることがよくあります。

ループ本体内では、いくつかの変数に変更を加えて、いくつかの反復後にfalseになるようにする必要があります。そうしないと、無限ループが発生します。

ES6+以降では、while(expression)の後の末尾のセミコロン(;)はオプションであることに注意してください。したがって、次の構文を使用できます。

do {
  statement;
} while(expression)Code language: JavaScript (javascript)

次のフローチャートは、do-whileループステートメントを示しています。

JavaScript do while

実際には、条件をチェックする前に、少なくとも1回はループ本体を実行したい場合に、do...whileステートメントをよく使用します。

JavaScript do whileステートメントの例

do...whileステートメントの使用例をいくつか見てみましょう。

1)シンプルなJavaScript do whileステートメントの例

次の例では、do...whileステートメントを使用して、0から4までの5つの数をコンソールに出力します。

let count = 0;
do {
  console.log(count);
  count++;
} while (count < 5)Code language: JavaScript (javascript)

出力

0
1
2
3
4

この例では

  • まず、count変数を宣言してゼロに初期化します。
  • 次に、countを表示し、その値が5以上になるまで、各反復でその値を1つずつ増やします。

2)JavaScript do whileステートメントを使用して簡単な数字当てゲームを作成する

次の例では、do...whileステートメントを使用して、数字当てゲームを生成します。

スクリプトは、1から10までのランダムな整数を生成します。そして、あなたの数字がランダムな数字と一致するまで、いくつかの推測をする必要があります。

// generate a secret number between 1 and 10
const MIN = 1;
const MAX = 10;

let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;

let guesses = 0; // for storing the number of guesses
let hint = ''; // for storing hint
let number = 0;
do {
  // get input from user
  let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);

  // get the integer
  number = parseInt(input);

  // increase the number of guesses
  guesses++;

  // check input number with the secret number provide hint if needed
  if (number > secretNumber) {
    hint = ', and less than ' + number;
  } else if (number < secretNumber) {
    hint = ', and greater than ' + number;
  } else if (number == secretNumber) {
    alert(`Bravo! you're correct after ${guesses} guess(es).`);
  }
} while (number != secretNumber);
Code language: JavaScript (javascript)

仕組み。

まず、MINおよびMAX定数を宣言し、それらの値を1および10に初期化します。

const MIN = 1;
const MAX = 10;Code language: JavaScript (javascript)

次に、Math.random()関数を使用して、0から1までの範囲(0を含むが1は含まない)の値を持つランダムな浮動小数点数を生成します。

MINとMAX(排他的)の間の乱数を生成するには、次の式を使用します。

Math.random() * (MAX - MIN + 1)Code language: JavaScript (javascript)

ただし、結果は浮動小数点数です。したがって、Math.floor()関数を使用して整数に変換する必要があります。

Math.floor(Math.random() * (MAX - MIN + 1))Code language: JavaScript (javascript)

minとmaxの間の乱数を生成するには、次の式を使用します。

let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;Code language: JavaScript (javascript)

3番目に、推測回数、ヒント、およびユーザーの入力番号を格納するための3つの変数を定義します。

let guesses = 0; // for storing the number of guesses
let hint = ''; // for storing hint
let number = 0;Code language: JavaScript (javascript)

4番目に、input()関数を使用してユーザーから入力を取得します。

let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);Code language: JavaScript (javascript)

input()関数はWebブラウザーでのみ機能することに注意してください。node.jsなどの別の環境でコードを実行する場合は、対応する関数を確認してください。

input()関数は文字列を返すため、parseInt()関数を使用して整数に変換する必要があります。

 number = parseInt(input);Code language: JavaScript (javascript)

5番目に、各反復で推測回数を増やします。

 guesses++;

6番目に、入力番号を秘密の番号(ランダム)番号と照合し、ヒントを提供します。番号が一致する場合は、alert()関数を使用してメッセージを表示します。

if (number > secretNumber) {
  hint = ', and less than ' + number;
} else if (number < secretNumber) {
  hint = ', and greater than ' + number;
} else if (number == secretNumber) {
  alert(`Bravo! you're correct after ${guesses} guess(es).`);
}Code language: JavaScript (javascript)

7番目に、番号が秘密の番号と一致するまで、次の反復を実行します。

while (number != secretNumber);Code language: JavaScript (javascript)

概要

  • do...whileステートメントを使用して、条件がfalseになるまでコードブロックを実行するループを作成します。
このチュートリアルは役に立ちましたか?