ループを使ってFizzBuzz問題を解こう
今回はループ機能を使って前回のFizzBuzz問題を改良してみましょう!
もちろん今回も全てシミュレーターで実行できますので、無料でお試しできます。実機を買うのは、遊び方や使い方を覚えてからでも遅くありません(﹡ˆᴗˆ﹡)
まずはいつものURLにアクセスしてください(*ˊᵕˋ*)੭
まずはいつものURLにアクセスしてください( ˆωˆ )
ループとは
プログラムのループとは、ある条件を満たすまで何かを繰り返す処理のことです。
と言われても何が何だか分かりませんね(;^ω^)
身近なもので分かりやすく言うと、次のようなことです。
- 5回手を叩く
- 腕立て伏せを10分間する
- 卵を30回かき混ぜる
分かりますか?ちょっと分解してみましょう( ˆωˆ )
- 5回手を叩く → 手を叩くことを5回繰り返す
- 腕立て伏せを10分間する -> 1分間の腕立て伏せを10分繰り返す
- 卵を30回かき混ぜる → 卵をかき混ぜることを30回繰り返す
どれも一つずつ何かをすることの繰り返しになっていることが分かりますね( ^∀^)
ループなしでやってみよう
まずはループを使わずに「5回手を叩く」をmicro:bitでやってみましょう。
とはいえmicro:bitに手を叩かせることはできないので、ここでは「Aボタンが押されたら5回音を鳴らす」ことにしてみます(;^ω^)
- メニュー「入力」から「ボタン[A ▼]が押されたとき」をクリックする。
- メニュー「音楽」から「音を鳴らす 高さ(Hz) (真ん中のド)」をクリックし、「ボタン[A ▼]が押されたとき」の中に入れる。
- メニュー「基本」から「一時停止(ミリ秒) (100)」をクリックし、「ボタン[A ▼]が押されたとき」の中に入れる。
上の2.にあるHz(ヘルツ)は周波数の単位です。分からなくても特に問題はありませんよ٩(*´꒳`*)۶°˖✧
それと、「音を鳴らす」をそのまま5回並べてもいいんですが、それだと音の区切りがわからないので3.で一時停止を入れています。
完成は次のようになりますね。
どうでしょう?今は5回だったので、まだ並べるのも簡単でした。
でも、これが10回だったらどうでしょうか? 100回だったら?? 1000回だったら???
同じ命令をずっと並べ続けていくのは面倒ですよね?
これを簡単にするのがループ命令です。
ループありでやってみよう
では、ループ命令を使って簡単にしてみましょう。
- メニュー「ループ」から「くりかえし(4)回」をクリックする。
- 「ボタン[A ▼]が押されたとき」の中に「くりかえし(4)回」を入れる。
- 「くりかえし(4)回」を「くりかえし(5)回」に変える。
- 「くりかえし(5)回」の中に「音を鳴らす 高さ(Hz) (真ん中のド)」を入れる。
- 「くりかえし(5)回」の中に「一時停止(ミリ秒) (100)」を入れる。
- 残っている「音を鳴らす 高さ(Hz) (真ん中のド)」と「一時停止(ミリ秒) (100)」を消す。
次のようになりました!
どうですか?
前のプログラムと違って、とても簡単になりましたね♪
前回のFizzBuzzを書き換えよう
では、ループを使って前回のFizzBuzz問題を改善しましょう( ・∀・)
前回はAボタンを押すたびに変数kazuが一つ増えていくようになっていましたね。
1から100までの数字を表示するために、ボタンを100回押さないといけないので疲れちゃいますね(;^ω^)
このプログラムをループを使って簡単にしてみます♪
前回のプログラムを使いますので、もしプロジェクトが残っていない方は前回を参考にして作ってみてください。
ループを追加しよう
Aボタンが押されたら、変数kazuを一つずつ増やしながら、数を表示していきます。
もちろん、次のルールにも気をつけましょうね。
- 15で割り切れる数の場合はFizzBuzzを表示する
- 5で割り切れる数の場合はBuzzを表示する
- 3で割り切れる数の場合はFizzを表示する
- それ以外数の場合はその数を表示する
ループを追加して、100回繰り返すようにすればいいだけなので簡単ですね(・∀・)
もう書かなくても分かると思いますので、手順は省略しますね(前回と今回をちゃんとやっていれば大丈夫!)
完成は次のようになります。
ループの最後に100ミリ秒の一時停止を入れているのは、数字と数字が続いて表示されて分かりにくくなることを防止しています。
一時停止じゃなくて、、(カンマ)とか:(コロン)とかを入れてもいいかもしれませんね。
もしよかったらチャレンジしてみてくださいヽ(´ー`)ノ
最後に
今日はループを使う勉強をしました。
ループはどんなプログラミング言語を勉強する時にも出てくる、とても大事な命令です。
ぜひ使いこなせるように覚えてくださいね。
頑張って良いmicro:bitライフを!
ではまた (´ー`)ノシ
コメント