変数のフラグとしての使い方について見てみよう

変数は回数の記録だけではなく、スイッチのオン・オフの状態の記録にも使われます。



ボタンAを押した時にはハートのアイコンを点灯し、ボタンBを押した時はアイコンを消すという処理をフラグの考え方を用いてコードを書いてみます。



スイッチオンという変数を用意し、最初だけのブロックでスイッチオンの値を0にしておきます。


ずっとのブロックでもし〜でなければのブロックを用意し、スイッチオンの変数の値に1が入っている時はハートのアイコンを表示し、変数の値に0が入っている時にはアイコンを表示しないようにします。



続いて、ボタンAが押された時はスイッチオンに1を入れるようにし、ボタンBが押された時はスイッチオンに0を入れるようにします。


これでボタンAを押した時にハートのアイコンが表示されるようになり、ボタンBを押した時にアイコンが消えるようになりました。




今回のコードをMicroPythonで書き換えてみます。

from microbit import *

# アイコンの点灯の有無のフラグ
is_led_on = 0

while True:
	# ボタンAが押された時
	if button_a.is_pressed():
		is_led_on = 1

	# ボタンBが押された時
	if button_b.is_pressed():
		is_led_on = 0

	if is_led_on == 1:
		display.show(Image.HEART)
	else:
		display.clear()

フラグの変数名を決める時は、is_led_on(isLedOn)のようにisから始まる変数名が一般的です。


余談ですが、is_led_onのように単語をアンダースコア(_)で繋げる表記方法をスネークケースと呼び、isLedOnのように2番目からの単語のはじめを大文字にする表記方法をキャメルケースと呼びます。


is-led-onのようにハイフン(‐)で繋げる表記方法をチェーンケースと呼びます。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
大阪府高槻市でプログラミング教室を開設しています。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。