[JavaScript]重複文を征服しよう


0.導入
どの言語でも、プログラミングを初めて学ぶときに条件文、繰り返し文を学習します.
これはすべてのプログラミングの基礎だからです.
条件文は理解できますが、繰り返し文から入ると頭が徐々に割れていきます.
こいつはいったい何なの?(本稿はJSのみ)
1.なぜ複文を書くのですか.
繰り返し文はその名の通り繰り返される文です.
たとえば、JavaScriptでは、1~100の値をコンソールに追加します.
繰り返し文を書かないと?
次のようなハードコーディングの愚かなことをします.
打っても疲れる
console.log(1+2+3+4+5+6+7+8+9+10+11+12+ // 헥헥헥...
しかし、重複文を使うと簡単になります.
let sum = 0; 
for (let i=0;i<=100;i++) {
    sum = sum + i
	}
console.log(sum); // 5050
1から100までプラスしなくても計算できますよね?
2.繰り返し文式(?)
言葉を繰り返すのが難しいと思っている人のために、自分の公式を作ったのかもしれません.
  • の結果を含む変数宣言と値の初期化
  • 反復
  • を決定し、初期値、範囲、増分、および反復
  • を作成する.
  • 文またはwhile文フォーマットについて符号化
  • を記述する
  • 結果変数を出力します.
  • 実はこれがすべてです.
    繰り返し文が難しいのは、一度に繰り返したものを一般化するのが難しいからかもしれません.
    では、上記の事例が上記の公式に適用されるとしたら?
  • の結果の変数をsumとして宣言します.
    加算を計算するので、ゼロに初期化します.
  • 加算を繰り返します.
    ただし、繰り返し実行する操作(加算)の値
    1, 2, 3, ... , 100は1を増やします.
    したがって、初期値を1、増減ドアを1と指定します.(関数を記述することによる一般化であれば、ゼロから始めてもよい).
    また、加算値は1~100なので、コマンドは100に繰り返します(すなわち、100以下).しかもやり続けたから.
    重複結果値に重複値を加えた内容でよい.
  • for文の場合、2番目の内容に従って
  • for (let i=0;i<=100;i++) {
        sum = sum + i
    	}
    console.log(sum); // 5050
    このような形になります.
    4.結果変数を出力すると、5050は正常に出力されます.
    3.二重複文
    この場合、何度も繰り返される場合でも拡張が可能です.
    たとえば、2からnumまでの小数(Prime Number:1と自分以外の数値)リストを呼び出す関数「listPrime(num)」を作成します.
    この場合も2番に適用される数式が適用されます.
  • の結果を含む変数の結果を発表します.
    値を文字列として出力する場合は、空の文字列に割り当てられます.
  • を繰り返す必要があるのは2種類あります.
    まず2と3以上の奇数の被除数(被除数)と
    除算する値(奇数)がそれです.
    たとえば、100までの少数のリストを作成する場合は、
    2, 3, 5, ... , 99への途中で、数字ごとに
    1, 3, 5, ... 相手に分け与える
    まず除数を外の繰り返し文に書いて、
    分けたお金は中の複文に書かなければならない.
    なお、初期値は外側3、内側1から始まるべきである.また、分ける数字も判別する数字も奇数です.
    各プラス2といえば
    次はfor文の括弧内の内容です.
  • for (let i=3;i<=num;i+=2) {
          for (let j=1;j<=num;j+=2) {
          }
    }

  • for文の外部フレームワークが完了し、重複する内容を記述する必要があります.
    私たちがしなければならないのは
  • に分かれた瞬間にcountが上がります.
  • countが2の瞬間、内側の重複ドアを強制的に閉じる.
  • を2で割って、countが2の場合、結果に数値を追加します.
  • 外のカウントダウンを1回転してcountを0に初期化します.(これはとても重要です!)
  • コードとして次のように実装されます.
    function listPrimes(num) {
     if (num === 2) {
       return '2'
     } else if (num > 2) {
       let result = '2-'
       let count = 0;
       for (let i=3;i<=num;i+=2) {
         for (let j=1;j<=num;j+=2) {
           if (i % j === 0) {
             count++
           }
           if (count === 3) {
             break;
           }
         }
         if (count === 2) {
           result = result + i + '-'
         }
         count = 0;
       }
       return result.slice(0,result.length-1)
     }
    }