「変数って何?」
コンピューターの特長の一つに、「大量のデータを扱うことができること」があげられます。
電気の状態変化を利用してデータを記憶させることができる「メモリー(記憶装置)」という部品が組み込まれていて、大量のデータを扱うことができます。micro:bitでも、数十万文字分のデータを扱うことができるメモリーが、プロセッサー内に組み込まれています。
プログラムから、このメモリーを使って、データを扱う仕組みのことを「変数(variable:『変化するもの』という意味)」と呼びます。
変数は、数や文字といったデータを入れるような「容器」のような感じで使うことができ、変数を上手に扱うと、より便利なプログラムを作成することができます。このページでは、変数の役割・機能と、micro:bitでの扱い方をまとめてみました。
(本ページ作成 2021.04.29)
変数の役割と機能
コンピュータープログラムでの変数の役割と機能をまとめてみました。
わかりやすい名前でデータを管理できる
メモリーは「XXXX番地」とデータを格納吸う場所を指定するのでわかりにくく不便です。
変数をつかうと、「hensu」などのようにわかりやすい名前をつけることができるので、プログラムの中でどんな役割のデータを納めた変数か、わかりやすくなります。
新しく名前をつけた変数をつくることを、「変数の宣言」といいます。
変数に値を納めることができる
変数に値を納めることを「代入」といいます。変数は1つの値だけを納めることができ、代入をすると前の値が消え、新しい値に上書きされます。
納められている値を参照し、表示したり処理できる
変数に納められた値を参照し、その値を表示したり、計算などの処理をすることができます。参照しただけでは値は変わりません。
MakeCodeエディターでの変数の扱い方
micro:bitの開発環境「MakeCodeエディター」での変数の取り扱い方をまとめてみました。
新しく変数をつくる
MakeCodeエディターの「道具箱>変数」をクリックすると、次のような画面が表示されます。
中央の「変数を追加する」をクリックすると、「作成する変数の名前:」ダイアログが開くので、名前を入力してください。
「OK」をクリックすると、変数を示す「○○」ブロックと、「変数○○を(0)にする」「変数○○を(1)だけ増やす」のブロックがあらわれます。
変数に値を代入する
「道具箱>変数」の中にある「変数○○を(0)にする」ブロックをつかうと、変数に値を代入することができます。
micro:bitでは、数や文字の他に、画像・真偽値・音階・などのデータを代入することができます。
呼び出す
変数に納めた値を呼び出して使用する例です。変数の型に合わせたブロックを利用するコード例を下記に示します。
コードをシミュレーターで実行するとこのようになります。
コードのリンク先はこちらです(https://makecode.microbit.org/_DF01k0PV6VEs)。タイトル横の「Edit Code」をクリックするとコード編集できます(音もでるようになります)。
変数の型について
「変数」という名前ですが、MakeCodeエディターの変数は数以外にも様々な型のデータを扱うことができます。
数(数値)型
加減乗除など計算の対象となる量としての「数(数値)」です。整数の他小数も扱えます。
文字列型
英数字や一部の記号を扱うことができます。
※漢字やかな文字なども扱うことができるようですが、表示することができません。
真偽型(ブーリアン型)
「真(true)」と「偽(false)」のいずれかの値をとる型です。条件分岐式などで使われます。
画像
MakeCodeエディターでは、変数にアイコンや矢印のほか、5×5のパターンを納めることができます。
音階
音の高さを表す音階(ド・レ・ミ・ファ・ソ・ラ・シ)を変数に代入することができます。ただし内部では各音階の周波数として扱われています。
変数の型は、最初に値を代入したときに決まる
MakeCodeエディターでは、変数に名前をつけて追加した段階では「数値型」となっています。実際にコードの中で使用し、最初に値を代入したときに型が決まります。一度型が決まったら、違う型の値を代入しようとすると、エラーになります。
ブロックと変数の型の組み合わせに注意
ブロックと変数の型の組み合わせによってはエラーとなる場合があります。例えば、文字列として代入された「”123”」(両端を引用符で囲むと文字列として扱われます)を、「数を表示」ブロックを使ってディスプレイに表示しようとするとエラーになります。
一方、数値変数の場合、「文字列を表示」ブロックを使うと、自動的に文字列に変換されて表示されます。
名前のつけ方
MakeCodeエディターの日本語版では、変数につける名前に関して、漢字やかな文字など全角文字も使用できます。
ただし現行バージョン(2021年4月現在。makecode.microbit.orgのバージョン: 3.0.68)では、デバッグモードの「変数チェック」で、全角文字の変数は表示されません。デバッグやメンテナンスなどを考えると、英単語やローマ字をつかった変数名が適切かもしれません。