変数
変数は、センサからのデータや計算に使用される中間値など、後でプログラムで使用するために値を命名して保存する方法です。
変数の宣言
それらを使用する前に、すべての変数を宣言する必要があります。 変数を宣言すると、その型を定義し、名前を与え、(オプションで)初期値を与えることを意味します(変数の初期化と呼ばれることがあります)。 変数は宣言されたときに初期化される必要はありませんが、可能であれば初期値を与えるのは良いスタイルです。
int型の変数inputVariable1を宣言する例を示します(int型は、-2、-1、0,1などの整数を格納するために使用されます)。
code:sample1.ino
int inputVariable1;
上記の宣言では、変数に初期値を与えませんでした。 ここでは、別の例を示します。次の例は、inputVariable2という名前のint変数を宣言し、初期値は0です。
code:sample2.ino
int inputVariable2 = 0;
Maple(Arduino STM32)環境は、他にもさまざまな型の変数が使用でます。 詳細については、組み込み型のページを参照してください。 さまざまな型の変数を宣言するいくつかの例を以下に示します。
code:sample3.ino
int lightSensVal;
char currentLetter;
unsigned long long speedOfLight = 186000ULL;
char errorMessage = {"choose another option"}; // see string
変数の命名
変数の命名規則は簡単です。 変数の名前には、文字、数字、アンダースコア(アンダースコアは_文字)を含めることができ、数字で始めることはできません。 したがって、temperature_reading、tempReading、tempReading1、およびtempReading2はすべて有効な変数名ですが、4_temp_readingsは数値で始まるので、そうではありません。
C ++キーワードの1つである変数の名前を選択することはできません。
変数名では大文字と小文字が区別されるため、「tempreading」と「tempReading」は異なる変数です。 しかし、大文字と小文字を同じにする変数を選択するコードを記述することは、非常に悪いスタイルです。
変数をわかりやすい名前にして、コードを読みやすくする必要があります。 tiltSensorやpushButtonのような変数名は、あなた(そしてあなたのコードを読んでいる誰か)が変数の意味を理解する助けになります。 一方、varやvalueのような変数名は、コードを読みやすくするためのものではありません。
変数のスコープ
プログラマーが直面する重要な選択は、変数を宣言する場所(プログラムテキスト内)です。 変数が宣言される特定の場所は、プログラム内のさまざまな関数が変数をどのように「参照」するかに影響します。 これは可変スコープと呼ばれます。 詳細については、スコープのリファレンスを参照してください。 変数の初期化
変数は、宣言されたときに初期化(開始値が割り当てられます)されます。 しかし、変数が使用される前にその変数が有効なデータを持っているかどうかを再確認するのは、常に良いプログラミング方法です。 変数を使用する前に変数を使用することは、一般的なバグの原因です。
可変ロールオーバー
すべての(数値)型に有効な範囲があります。 型の範囲は、その型の変数が格納できる最小値と最大値です。 たとえば、int型の範囲は-2,147,483,648〜2,147,483,647です(*1)。
変数が範囲の最大値を超えると、変数はその最小値に「ロールオーバー」します。 これは両方向で発生することに注意してください。 ゲームのようなものPac-Man - Pac-Manが画面の右端を過ぎると、彼は左に再び現れ、彼が画面の左側を通り過ぎると、彼は右に再び現れる:
code:sample4.ino
int x;
x = -2,147,483,648;
x = x - 1; // x now contains -2,147,483,647; rolled over "left to right"
x = 2,147,483,647;
x = x + 1; // x now contains -2,147,483,648; rolled over "right to left"
各数値型の参照ページにはその範囲が含まれます。 各タイプのリファレンス・ページへのリンクについては、組み込み型のリファレンスを参照してください。 変数の使用
変数が宣言されると、代入演算子(=)を使用して値が与えられます。 代入演算子は、プログラムに、等号の右側の値を左側の変数に格納するように指示します。 code:sample5.ino
inputVariable1 = 7; // sets variable named inputVariable1 to 7
inputVariable2 = analogRead(2); // sets variable named inputVariable2 to
// the (digitized) input voltage read from
変数が設定(値が割り当てられている)されたら、その値をテストして特定の条件を満たすかどうかを調べたり、その値を直接使用したりすることができます。 たとえば、次のコードは、inputVariable2が100未満かどうかをテストし、inputVariable2に基づいて遅延を設定します(その時点で100以上)。
code:sample6.ino
if (inputVariable2 < 100) {
inputVariable2 = 100;
}
delay(inputVariable2);
脚注
*1. この範囲は最初はちょっと変わったように見えるかもしれません。 この値域の理由は、intが32ビットのメモリを占有するという事実と関係しており、
code:sample7.ino
2^31 = -2,147,483,648
2^31 - 1 = 2,147,483,647
関連項目
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。