micro:bit の条件分岐(if 文)の使い方 — 文字種判定プログラムの実装(2)
前回の記事では MakeCode の関数を定義・呼び出す方法を学びました。今回は関数 Convert_a_to_A の中身を実装します。受信した文字列が小文字か大文字かを判定するために条件分岐(if 文)を使います。
条件分岐で文字種を判定するプログラムを作成する
前回からの続きで、b.) の機能を実装します。
- シリアルインタフェースで文字列を受信する
- 文字列が小文字なら大文字に変換する ← 今回実装
- 文字列を LED に表示する
受信した文字列が小文字以外であれば処理は不要です。まず大文字・小文字・それ以外を判定する条件分岐を実装します。例えば以下のように条件分岐だけで a〜z を個別に処理することも可能です。

ここでは a・b・c の変換のみ記載しましたが、z まで追加すればプログラムとして完成します。誰にでも読みやすいコードという意味では正解ですが、記述量が多くなります。
MakeCode で条件分岐(if 文)ブロックを使う
何かを判定する際は「論理」パーツリストにある条件分岐ブロックを使います。まずこれを Convert_a_to_A 関数の中に配置してください。

「真」の箇所には別のパーツを組み合わせられます。「論理」パーツリストの比較パーツのうち、一番下(文字列比較)を条件分岐の「真」の箇所に組み合わせてください。上の2つは数値比較、一番下が文字列比較です。

以下のようにプログラムを進めてください。

“Hello" と書かれている箇所は最初は数値しか入れられないため、以下のパーツで文字列を入れられるよう変換してください。

バイナリファイルをダウンロードして動作を確認します。Tera Term から “a" や “d" を入力すればそのまま表示されますが、"K" を入力したときだけ “Hello" が表示されます。
次に条件分岐ブロックの + ボタンを押して 「でなければもし」 や 「でなければ」 のエリアを追加し、以下のようにプログラムを変更してください。

Tera Term で “K" と “L" を入力したときだけ異なる振る舞いをすることが確認できます。これで条件分岐がどのように動作するかを理解できたかと思います。
条件分岐(if 文)の基本概念
条件分岐とは、ある条件を満たすかどうかによって実行する処理を切り替える仕組みです。一般的なプログラミング言語では if 文と呼ばれます。
- ある条件を満たしている時:〇〇のプログラムを実行する
- ある別の条件を満たしている時:△△のプログラムを実行する
- いずれの条件も満たしていない時:××のプログラムを実行する
ただし、何でも条件分岐で解決しようとするとプログラムが読みづらくなります。誰が見ても意図が伝わるような変数名と条件を使うことが重要です。次の記事では繰り返し(for 文・while 文)を学び、atoA プログラムをさらに進めます。




ディスカッション
コメント一覧
まだ、コメントがありません