05. 繰り返し

JavaScriptで繰り返しを表現する方法の一つに、for文があります。
たとえば、以下の計算をしたい場合、すぐに思いつく方法は1から100までを一つずつ足していくことでしょうか。

1 + 2 + 3 + 4 + 5 + … + 96 + 97 + 98 + 99 + 100 =

これを自分で計算するのは、とてもしんどいですね・・・。
こういう繰り返し作業は、実はコンピュータが得意とするものです。
さっそく、JavaScriptを使って解いてみましょう。
いつものように、テキストエディタで以下を入力してみてください。

リスト5-1: lesson05-1.html

<!DOCTYPE html>
<html>
  <head>
    <title>Lesson05</title>
  </head>
  <body>
    <script>
      let a = 0;
      for (let i=1; i<=100; i++) {
        a += i;
      }
      alert("Answer: " + a);
    </script>
  </body>
</html>

保存したファイルをWebブラウザで開くと、一瞬で答えが出てきましたね!
繰り返しは for (初期処理; 繰り返し条件; カウンタ変数の増減)という書式で、{から}で括られた命令の並びを条件が成り立つあいだ繰り返し実行します。

実はこの問題、1から順に数値を足さなくても、あっというまに答えを導くことができます。
この数は三角数と呼ばれ、n × (n + 1) ÷ 2という計算式で表されます。
せっかくですので、これもJavaScriptで書いてみましょう。

リスト5-2: lesson05-2.html

<!DOCTYPE html>
<html>
  <head>
    <title>Lesson05</title>
  </head>
  <body>
    <script>
      let n = 100;
      let a = n * (n + 1) / 2;
      alert("Answer: " + a);
    </script>
  </body>
</html>

同じ答えが表示されましたね!
計算を何回も繰り返すことと数式を一つ解くこと、この例ではそれほど違いはないように見えますが、より複雑な処理の場合、どのように組むかによって性能がまったく変わってくることがよくあります。
プログラムが自由に組めるようになったら、次は、分かりやすいプログラムや効率のよいプログラムが書けるようにしていきたいですね。