udy JavaScript 0417-1 hrwhile、繰り返し文用


1.While反復文


複文の文法は次のように使用できます.
	while (condition) {	// 조건이 true이면 코드 실행!
      // 코드
      // '반복문 본문(body)'이라 불림
	}
条件が真の場合、繰り返し文で本明細書のコードを実行します.
以下の例は、i<3が満たされたときにiを出力するコードである.
let i = 0;
while (i < 3 ) {	// 0, 1, 2가 출력
	alert(i)
    i++;
}
上のコードから分かるように,複文本文は3回繰り返される.
次の例は、while(i!=0)を使用してwhile(i)で作成されたコードです.
また,複文本文が1行であれば括弧{}を省略することができる.
	let i = 3;
	while (i) { // i가 0이 되면 조건이 false가 되므로 반복문이 멈춘다.
      alert( i );
      i--;
	}
    <!-- { } 생략 버전 -->
    //	while(i) aler(i--);

2.do-while繰り返し文


do-while構文を使用して、条件を複文本文の下に移動します.
  do {
    // 반복문 본문
  } while (condition);
本明細書が先に実行され、条件が確認された後に条件が本物である場合にのみ、本明細書は実行を継続します.
  let i = 0;
  do {
    alert( i );
    i++;
  } while (i < 3);
では、do-while文はどのような場合に使われるのでしょうか.
dp-while複文は、条件が正しいかどうかにかかわらず、少なくとも1回本明細書を実行したい場合にのみ使用されます.
ほとんどの返済にはwhileゲートが適切です.

3.for反復文


for複文はwhile複文より複雑だが最もよく使われる複文である.
  for (begin; condition; step) {	// 시작, 조건, 단계
    // 반복문 본문
  }
以下の例を見てみましょう.
	for (let i = 0; i < 3; i++) { // 0, 1, 2가 출력됩니다.
      alert(i);
	}
コンポーネントの例では、begin(開始)i=0が繰り返し文に入るたびに、実行条件(条件)i<3が繰り返されるたびに、この条件がチェックされることを示します.false面繰返し文停止body(本明細書)alert(i)条件はtrue日であり、step(ステップ)i++の実行を続行し、各本文の実行後に実行する
一般的な繰り返し文のアルゴリズムは次のとおりです.
beginの起動
→(条件がtrueの場合→本明細書の実行後stepを実行)
→(条件がtrueの場合→本明細書の実行後stepを実行)
→(条件がtrueの場合→本明細書の実行後stepを実行)
→ ...
文の中で重要なのは「;」だからです.必ず2つ使います.

4. Break


通常、条件がfalseの場合、繰り返し文は終了します.
しかしbreakを使用して必要なときに終了することができます.
以下の例を見てみましょう.
  let sum = 0;

  while (true) {

    let value = +prompt("숫자를 입력하세요.", '');

    if (!value) break; // 사용자가 아무것도 입력하지 않았을 때

    sum += value;

  }
  alert( '합계: ' + sum );

5. Continue


continueは、現在の重複を終了し、次の重複に移動するために使用できます.
以下の例を見てみましょう.
  for (let i = 0; i < 10; i++) {

    // 조건이 참이면(짝수) 뒤의 본문은 실행되지 않는다.
    if (i % 2 == 0) continue;

    alert(i); // 1, 3, 5, 7, 9가 차례대로 출력됨
  }

6. Label


複数の重複する複文を一度に飛び出すことがよく必要です.
次の例は、(0,0)~(2,2)の(i,j)座標を入力するためにiおよびjを繰り返す例である.ちょっと見てみましょう.
  for (let i = 0; i < 3; i++) {

    for (let j = 0; j < 3; j++) {

      let input = prompt(`(${i},${j})의 값`, '');

      // 여기서 멈춰서 아래쪽의 `완료!`가 출력되게 하려면 어떻게 해야 할까?
    }
  }
	alert('완료!');
上のコードでbreakを使えばいいんじゃないですか?そう思っていたら、それは間違っていた.
二つの複文が重なって、二つとも出られない.
この場合、ラベルを使用できます.
  labelName: for (...) {
    ...
  }
繰り返し文でbreak labelName文を使用すると、繰り返し文を終了できます.
  outer: for (let i = 0; i < 3; i++) {

    for (let j = 0; j < 3; j++) {

      let input = prompt(`(${i},${j})의 값`, '');


      if (!input) break outer; // 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나온다.

      // 입력받은 값을 가지고 무언가를 함
    }
  }
  alert('완료!');