JS 005

4878 ワード

JS基本文法


1.繰り返し文(while,for)


ドア


デフォルトのフォーマット

while文は、条件式参加期間中に動作文を繰り返し実行する構成である.動作文が1つ以上ある場合は、括弧で囲んだほうがいいです.無限の繰り返しを行わないように注意する.
while(条件式){
アクション文
動作文2;
アクション文
}
> let i = 1;
  while (i <=100) {
    console.log('Hello');
    i++;	                   // i = i+1, i += 1 과 동일하다.
  }

(100) Hello
< 100
通常、プログラミングでは変数の最初の値が0に代入されるので、条件式を設定して必要な回数の重複文を作成することに注意してください.
> let i = 0;
  while (i < 100) {                // (i <= 99)와 동일 
    console.log('Hello');
    i++;	                   // i = i+1, i += 1 과 동일하다.
  }

(100) Hello
< 99

文脈


デフォルトのフォーマット

for文の括弧に開始(式または変数宣言)、条件式、終了式を記入すればよい.
for(開始;条件式;終了式)
アクション文
> for (let i = 0; i < 100; i++) {
    console.log('Hello');
  }
  
(100) Hello
< undefined
動作文が長くなるとfor文の方が読みやすさが高くなります.なお、開始、条件式および終了式は省略することができ、この場合、条件はtrueであり、無限に繰り返される.無限反復文を書く場合は条件式を省略するので、while文を書くのが望ましい.
> for (;;) {
  }
무한 반복

while文として1~100を入力

> let i = 0
  while (i < 100) {
    console.log(i+1);
    i++;
  }

for文として1~100を入力

> for (let i = 0; i < 100; i++) {
    console.log(i+1);
  }

breakで重複文を停止する

> let i = 0
  while (true) {
    if (i === 5) break;
    i++;
  }
  console.log(i);
  
  5

コード実行のスキップを続行


反復文が特定の条件下でのみ実行される場合、continueを使用してスキップコード実行を指定し、特定の条件下でのみ実行できます.
> let i = 0;
  while (i < 10) {                    // 홀수만 console.log
    i++;
    if (i % 2 === 0) {                // 짝수인 경우에는 건너뛰기
      continue;
    }
    console.log(i);
  }

ネストされた重複文の使用

> for (let i = 0;i < 10; i++) {
    for (let j = 0; j < 10; j++) {
      console.log(i, j);
    }
  }

  0 0
  0 1
  0 2
  ...
  9 7
  9 8
  9 9
> for (let i = 0; i < 5; i++) {
    if (i % 2 === 0) continue;
    for (let j = 0; j < 5; j ++) {
      if (j % 2 === 0) continue;
      for (let k = 0; k < 5; k++) {
        if (k % 2 === 0) continue;
        console.log(i, j, k);
      }
    }
  }
  
  1 1 1
  1 1 3
  1 3 1
  1 3 3
  3 1 1
  3 1 3
  3 3 1
  3 3 3

九九乗算テーブルの偶数を除外

> for (let i = 0; i < 9; i++) {
    for (let j = 0; j < 9 ; j++) {
      if ((i+1)*(j+1) % 2 == 0) continue;
      console.log(i, j, (i+1)*(j+1));
      }
    }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 0) continue;
    for (let j = 0; j < 10; j++) {
        if (j % 2 === 0) continue;
        console.log(i, j, i*j)
       }
   }
> for (let i = 0; i < 10 ; i++) {
    for (let j = 0; j < 10; j++) {
      if (i % 2 === 0 || j % 2 === 0) continue;
      console.log(i, j, i*j)
      }
  }

*を使用したライブシェイプの作成

> for (let i = 0; i < 10; i++) {
    console.log('*'.repeat(i+1));
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log('*'.repeat(i));
    }
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log(' '.repeat(10-i) + '*'.repeat(i));
    }
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log(' '.repeat((10-i)/2) + '*'.repeat(i) + ' '.repeat((10-i)/2));
    }
  }

*逆三角形の作成

> for (let i = 5; i >= 1; i--) {
    console.log('*'.repeat(i));
  }
> for (let i = 0; i < 5 ; i++) {
    console.log('*'.repeat(5-i));
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log('*'.repeat(10-i));
    }
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log(' '.repeat(i) + '*'.repeat(10-i));
    }
  }
> for (let i = 0; i < 10 ; i++) {
    if (i % 2 === 1) {
      console.log(' '.repeat(i/2) + '*'.repeat(10-i) + ' '.repeat(i/2));
    }
  }