見出し画像

TypeScript 入門の記録(33)プロを目指す人のためのTypeScript入門(18)FizzBuzzで力試し

書きたいネタはいろいろあるのですが、今日はTypeScript入門の記録の続きをやろうと思います。他のネタは、タイミングを見て公開します。

FizzBuzz で力試し

力試しの前にDockerの確認

先週、最新のWSL2では、Genieを使わなくても、systemctlが使えることを確認しました。それならDockerもそのまま起動できそうです。というわけで、Dockerを起動してみます。
ターミナルの起動直後に、Dockerチュートリアルを実行します。

Hello from Docker !

Genieが起動されていなくても、Dockerが実行できました。(チュートリアルだけど)
今後は、Dockerを実行したい場合の手順が簡単になりますね。めでたい。

FizzBuzzで力試しをしよう

FizzBuzzは、様々なプログラミング言語で練習問題や腕試し課題として利用される、超有名なプログラミング問題です。

FizzBuzzのルール
・3の倍数以外かつ、5の倍数以外の整数はそのまま出力する。
・3の倍数かつ、5の倍数以外の整数の場合、文字列"Fizz"を出力する。
・3の倍数以外かつ、5の倍数の整数の場合、文字列"Buzz"を出力する。
・3の倍数かつ5の倍数の整数の場合、文字列"FizzBuzz"を出力する。

1から100までの整数のFizzBuzzを処理するプログラムを作ってみます。
3の倍数のとき、”Fizz”が出力され、5の倍数のとき、"Buzz"が出力される、両方を満たす場合は連結した、"FizzBuzz"、どちらでもない整数はそのまま出力されると考えて、以下のようにしてみました。

3の倍数、5の倍数それぞれの条件で出力文字列を生成

さらに整理して、3の倍数または5の倍数なら結果の文字列を出力し、それ以外は整数をそのまま出力しました。

定数を1つにしてみました

さて、これができたら、各整数ごとに改行しないで一気にlog出力するように修正する課題に進みます。

FizzBuzzの結果を1行で出力してみよう

ループ内で結果文字列に各整数ごとの結果を追加して、最後に結果をlog出力しました。

ループ内で結果文字列
を追加して最後に出力

さらに、末尾の空白が余分なので、これを取り除くよう修正しました。

末尾の空白を削除

テキストの解答例とは違った、変化球っぽいアルゴリズムで書いてみました。ちょっとしたプログラムでも、期待通りの結果が得られると嬉しいです。他の言語でプログラミング経験があれば、そんなに悩まなくても作れる程度の内容なので、まだまだこれからって感じです。さて、今日はここまで。続きは、またの機会に。

この記事が気に入ったらサポートをしてみませんか?