3.9 FizzBuzz 《算術演算子》 【JavaScript超入門】
JavaScriptの学習メモ。
今日は『確かな力が身につくJavaScript「超」入門』の第3章を読んでみます。
3.9 算術演算子
(p.119)
FizzBuzzというゲームをプログラムで実現してみましょう。
これまでも +、-、*と、計算のための記号をあまり詳しく説明せずに使ってきましたが、この実習でも新たに割り算の余りを算出する%記号を使います。
FizzBuzzとは?
FizzBuzzとは、何人か組になって、「1」「2」と順番に数字を言っていき、3で割り切れる数字のときは「Fizz!」、5で割り切れるときは「Buzz!」、3でも5でも割り切れるときは「FizzBuzz!」と叫ぶゲームです。
Fizz Buzz(フィズ・バズ、Bizz BuzzやBuzzとも呼ばれる)は英語圏で長距離ドライブ中や飲み会の時に行われる言葉遊びである。
遊び方
プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの次の数字を発言していく。ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。
ゲーム例
ゲームは、以下のとおりに発言が進行する。
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, Fizz Buzz, 31, 32, Fizz, 34, Buzz, Fizz, ...
このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法をJeff AtwoodがFizzBuzz問題 (FizzBuzz Question) として提唱した。
「制限時間2分以内」「剰余(%記号等)を用いない」「1行でできる限り短く(ワンライナー)」等の縛りでゲーム条件を満たすコード記述の腕試しをする者が続出した。
サンプルコード
「index.html」というファイルを作り、以下の内容を書きます。
実行結果
「index.html」をChromeで開いて、コンソール画面を出します。
以下のような実行結果になりました。
fizzbuzz()関数が正常に動作していることが分かります。
算術演算子
- 加算 (+)
- 減算 (-)
- 除算 (/)
- 乗算 (*)
- 剰余 (%)
- べき乗 (**)
四則演算(+、-、*、/)以外の演算子を確認してみましょう。
剰余演算子 %
剰余 (%)
剰余演算子は1つ目の数値を2つ目の数値で割った余りを返します。
(例)12 ÷ 5の余りは2なので、12%5は2になります。
冪乗演算子 **
べき乗 (**)
べき乗は1つ目の数値を2つ目の数値でべき乗した値を返します。
(例)2の3乗(2を3回かける、2*2*2)は8なので、2 ** 3は8になります。
まとめ
- 関数の中でifを使い、場合分けすれば、FizzBuzz問題をプログラムで書ける
- JavaScriptの算術演算子には、四則演算の他に、剰余演算子やべき乗演算子が用意されている
- 倍数を判定するときに、剰余演算子が便利
剰余演算子を活用して、スッキリしたプログラムを書きたいです。
確かな力が身につくJavaScript「超」入門 (確かな力が身につく「超」入門シリーズ)
- 作者: 狩野祐東
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/10/30
- メディア: 単行本
- この商品を含むブログを見る