micro:bit atoA(小文字を大文字に変換する)プログラム(2) : 条件分岐

2020年12月28日

この記事で説明すること

以下の記事の続きです。micro:bit にて小文字で受信した文字列データを大文字の文字列に変換してmicro:bit のLEDに表示するプログラムを元に、条件判定の基礎を学びます。

プログラムを進めていきましょう

前回の記事では関数を作ることでプログラムを誰にでもやすくすることを学びました。

それではここからは関数"Convert_a_to_A"の中身をプログラムしていきます。ここで実装するプログラムは以下のb.)の機能です。

a.) シリアルインタフェースで文字列を受信する。

b.) 文字列が小文字なら大文字に変換する。

c.) 文字列を表示する。

受信した文字列が小文字以外であれば特に処理は必要ありませんね。まずは受信した文字が大文字なのか小文字なのかそれ以外なのかを判定しましょう。さて、どのように判定を行うのが良いでしょうか?少し考えてみて下さい。

何かを判定するときには”論理”のパーツリストにある以下のパーツを使います。まずはこれを"Convert_a_to_A"の中に配置しましょう。

“真"と書かれているところにはまたべーつのパーツを入れることが出来ます。まずはこの条件分岐の使い方を理解して頂く前に…まずは使ってみましょう。まず、同じ"論理"のパーツリストにある以下の中から、一番したのパーツを上の条件分岐のパーツの"真"のところと組み合わせて下さい。この中の上の二つは数値を比較するもの、一番下は文字列を比較するためのものです。

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

上記で"Hello"と書かれている箇所には最初、"数値"しか入れられませんので、以下のパーツで文字列が入れられるようにして下さい。

ここまで出来たら一旦、バイナリファイルをダウンロードして動作を確認してみましょう。Teratermの画面上から文字を入力すると"a"とか"d"であればそのまま表示されるはずですが、"K"と入力した時だけは、"Hello"の文字列が表示されているはずです。

以下のようにプログラムを変更すると、どうなるかも動きを見て下さい。条件分岐のパーツの+ボタンを押すことで “でなければもし"“でなければ" のエリアが追加されます。

Teraterm上で"K"と"L"と打った時だけ、いつも異なる振る舞いをすることが確認出来ると思います。ここまでくるとこの条件分岐がどのような振る舞いをするかがご理解頂けかと思います。

条件分岐について

この条件分岐とは

・ある条件を満たしている時は 〇〇のプログラムを実行する

・あるいは、ある別の条件を満たしているとき△△のプログラムを実行する

・もしいずれの条件も満たしていない時は××のプログラムを実行する

と言った使い方が出来るものです。実際のプログラミング言語では if 文(イフブン)と呼ばれるものになります。ざっくりと言ってしまうと条件により、処理を分けたい時に有効です。ただし、何でもかんでもこの条件分岐を使ってしまうとプログラムが読みづらくなってしまうことに注意して下さい。誰がみてもわかるような変数名を使い、条件分岐を見ることでプログラムの作成者がどのようなことを実現したいかが読み取れること、これが重要です。

今回の記事では条件分岐の使い方について説明しました。今後のプログラムでもこの条件分岐は頻出です。実際にいくつか自分でプログラムを変更して動作を確認してみて下さいね。

また、不明点がありましたら遠慮なくお問合せ下さい。