変数ブロック

変数ブロックにより、プログラムで変数の読み込みや書き込みを行うことができます。また、新規変数を作成し、これに名前を付けることもできます。

変数とは、データ値を保存することのできる EV3 ブロックのメモリー内の位置のことです。変数へ書き込み、データ値を保存することができます。プログラムの後半で、変数から読み込み、保存した値にアクセスすることができます。
各変数には、タイプと名前があります。数値、ロジック、テキスト、数値配列、およびロジック配列という異なるタイプが存在します。変数の名前を選択して、変数を特定することができます。

異なる変数のタイプについての詳細は、データ タイプをご確認ください。

変数の値は、プログラム実行中に変更することができます。変数に書き込む度に、以前の値が消去され、新しい値と取り替えられます。例えば、「最大光」という名前の変数を使って、ロボットがカラー センサーから測定した最も強い光の強さを追跡します。ロボットが高い値を検出する度に、「最大光」変数に新しい値を書き込むことができます。
新規変数を追加する


モード セレクター
変数セレクター
値の入力

プロジェクトに新しい変数を追加する方法:
1.変数ブロックの挿入または選択
2.モード セレクターを使って書き込みモードを選択します。
3.変数タイプ(数値、ロジック、テキスト、数値配列、またはロジック配列)を選択します。
4.ブロックの最上部のブロック テキスト フィールドをクリックして、[変数の追加]を選択します。以下に示されるように、新規変数ダイアログ ボックスが表示されます。
5.新規変数ダイアログ ボックスで、変数の名前を入力し[OK]をクリックします。変数名としては、一つの文字、単語、複数の単語、あるいは文字と数値が可能です。
ヒントと豆知識
短い変数名を選択することで、プログラムで変数を使用する際に変数名全体を確認するのが容易になります。
ある変数が何であり、プログラムの他の変数との違いが何であるるかを把握するのに役立つような名前を選択します。
変数を追加すると、プロジェクトのどのプログラムでもこれを使用することが可能となります。
6.変数を追加した後、書き込みモードの変数ブロックを使って変数の初期を入力することができます。
変数に書き込む


モード セレクター
変数名
入力
書き込み
書き込みモードにより、プログラムにすでに追加した変数を選択し(新規変数を追加するをご確認ください)、そこに値を保存することができます。
変数に書き込む方法:
1.モード セレクターを使って書き込みモードを選択します。
2.変数のタイプを選択します。
3.ブロック テキスト フィールドをクリックして、ポップアップ メニューを表示します。
4.使用したい変数の名前を選択します。
ヒントと豆知識
ポップアップ メニューから変数名を選ぶ前に、モード セレクターから変数のタイプを選択する必要があります。ポップアップ メニューは、選択されたタイプと一致する変数のみをリストアップします。
5.の入力を使って、値を変数に保存することができます。値の入力に直接にを入力するか、データ ワイヤーを使用することができます。
ヒントと豆知識
必要なだけ何回でも変数に書き込むことができますが、最後の値だけは維持されます。変数の書き込みにより、変数の前の値は消去され、新しい値と取り替えられます。
変数から読み込む


モード セレクター
変数名
出力
読み込み
読み込みモードにより、プログラムにすでに追加した変数を選択し(新規変数を追加するをご確認ください)、そこに値を保存することができます。
変数から読み込む方法:
1.モード セレクターを使って読み込みモードや変数のタイプを選択します。
2. ブロックの最上部にあるテキスト フィールドをクリックして、ポップアップ メニューを表示し、使用したい変数の名前を選択します。
ヒントと豆知識
ポップアップ メニューから変数名を選ぶ前に、モード セレクターから変数のタイプを選択する必要があります。ポップアップ メニューは、選択されたタイプと一致する変数のみをリストアップします。
3.の出力から変数の値を取得し、データ ワイヤーによりこれをプログラムで使用することができます。
ヒントと豆知識
値が書き込まれていない変数から読み込む場合、数値変数では結果は 0 となり、ロジック変数では偽となり、テキスト変数では空のテキストとなり、数値配列またはロジック配列では空の配列となります。
「変数を使用する」の例
例 1:値を保存し、後で使う
このプログラムは、書き込みモードの変数ブロックを使って、「Light」という名前の変数のカラー センサーからのデータ値を保存し、読み込みモードで変数ブロックを使って値を取得し、後でプログラムで使用することができます。

このプログラムは、ロボットに前後の動作をさせるようデザインされています。途中でロボットは、少なくとも開始時の色と同じくらい暗い色で停止します。
ヒントと豆知識
また、上記のプログラムは、変数の代わりに長いデータ ワイヤーを使って実行することもできますが、長いプログラムでは、変数を使って値を保存することにより、プログラムはより簡単に作業することができるようになります。
例 2:タッチ センサーの押下のカウント
このプログラムは、タッチ センサーが押された回数をカウントし、EV3 ディスプレイでそのカウントを表示します。これは、「押下」という名前の変数を使ってタッチ センサーが押された回数を追跡管理するものです。

書き込みモードの変数ブロックは、プログラム開始時点で「押下」の初期値を 0 に設定します。ループ内で、プログラムはタッチ センサーがバンプする度に変数に保存された値に 1 を追加します。これは、読み込みモードの変数ブロックにより現在の値を取得し、数学ブロックとデータ ワイヤーを使って 1 を追加し、書き込みモードの変数ブロックにより変数に結果を書き込むことで実現されています。最後に、読み込みモードの別の変数ブロックを使って現在の値を取得し、これを表示します。
入力と出力
書き込みモードでは、変数ブロックには一つの入力があります。ブロックに値を直接入力することができます。あるいは、データ ワイヤーを使って別のプログラミング ブロックの出力から値を得ることができます。
入力タイプ備考
(ブロック モードに従います)変数に保存する値
読み込みモードでは、変数ブロックには一つの出力があります。出力を利用するには、別のプログラミング ブロックに接続するデータ ワイヤーを使用します。
出力タイプ備考
(ブロック モードに従います)選択した変数の値
変数
クイックリンク