プログラミングの基本であるデータの種類と取り扱い、それから変数について説明します。
- データ・変数
- 図形の描画
- 色の指定
- 点と直線の描画
- 円と円弧の描画
- 四角形と三角形の描画
- 多角形の描画
- 曲線の描画
- 繰り返し
- 条件分岐
- 関数
- アニメーション
- イベント動作
- 画像
- 配列
- オブジェクト指向プログラミング
- 数理造形
- やってみよう
プログラミングの基本であるデータの種類と取り扱い、それから変数について説明します。
データの種類と変数
プログラムが扱うデータには「型」があります。ここでは最もよく扱う「数値」と「文字列」について説明します。簡単にいうと数値は計算できる数字です。文字列は文字が連続して列なったデータです。例えば、5は計算できる数字です。「5+1=6」が成り立ちます。しかし、”5″は文字列としての数字です。「”5″+1=6」とはなりません。5と”5″は人から見ると同じように扱いますが、コンピューターは数値の5と、文字列の”5″は全く違うデータであると認識しています。このようにデータのそれぞれには「型」が存在します。
これらのデータをプログラムの中で「変数」というものを使って一時的に保存し、様々な処理を行います。変数は名前の付いた入れ物を想像するとわかりやすいと思います。
以下は数値と文字列を変数に代入する例です。よく使われる型を紹介します。
int data1 = 5
float data2 = 3.14
boolean data3 = True
String data4 = "Hello World!"
変数は自由に名前をつけることができますが、プログラムの文で使われる単語は使えません。また、命令文(関数)と同じ名前も避けたほうがいいでしょう。
プログラムの中で変数を作る(はじめに定義する)には、まず型の種類を指定し半角スペースを空けて変数名を記述します。
上記コードの1行目はdata1という名前の変数が定義されています。データはint型です。これは整数を表します。上記の型名と内容は次のようになります。
int | 整数 |
float | 浮動小数点数 |
boolean | 真偽値(True, False) |
String | 文字列 |
このように変数はデータの型を指定して作ります。intを指定して作ったdata1変数に文字列を代入しようとするとエラーになるので注意してください。
data1 = "Hello World!" //エラー
boolean型は真偽値といって、True(真)とFalse(偽)の2種類だけを扱います。2値なのでプログラムの中でON/OFFのような処理を記述するときによく使います。
上記4種類はProcessingでプログラムを書くと頻繁に登場しますが、上記4種類以外でプログラムを書き慣れてくると以下のデータ型もよく使うようになってきます。
color | 色の値を格納するためのデータ型 color()で割り当てるか、#FFCC00などのカラーコードを使用して直接指定できます。 |
オブジェクト | クラス定義して生成したオブジェクトを格納するためのデータ型 型名にはクラス定義したときに付けたクラス名を使用 |
これらのデータ型やここで紹介していないデータ型も後の説明で出てくるかもしれません。
どのような型のデータであっても変数に代入するときは、変数はそのデータの型でないといけないことを知っていてください。
数値を使った計算
数値は計算できる数字です。変数に数値を代入し計算するコードを書いてみましょう。
int data1 = 6;
int data2 = 10;
float data3 = 3.14;
int result1 = 0;
float result2 = 0.0;
result1 = data1 + data2;
println(result1);
result1 = data2 - data1;
println(result1);
result1 = data1 * data2;
println(result1);
result1 = data2 / data1;
println(result1);
result2 = data2 / data1;
println(result2);
result2 = data1 + data3;
println(result2);
result1 = data2 % data1;
println(result1);
7行目は足し算です。「+」記号を使います。data1とdata2を足した結果をresult1に代入しています。=の右辺に演算処理があると先に演算を行ってから結果を左辺の変数に代入します。
10行目は引き算です。「-」記号を使います。data2からdata1を引いた結果をresult1に代入しています。
13行目はかけ算です。「*」記号を使います。data1とdata2をかけた結果をresult1に代入しています。
16行目は割り算です。「/」記号を使います。data1からdata2を割った結果をresult1に代入しています。
Processingは整数と整数で割り算すると結果は整数となります。この場合、余りを切り捨てます。また、整数はfloat型の変数に代入することができます。
19行目は割り算の結果をfloat型の変数に代入しています。この場合、余りを切り捨てた整数を浮動小数点数にして保存しています。
22行目は計算する数値に浮動小数点数を使った場合、結果の数値は浮動小数点数となります。この場合、結果をint型の変数に代入することはできません。
25行目は右辺で割ったときの余りを算出する演算子です。「%」記号を使います。data2からdata1を割ったときの余りをresult1に代入しています。
画面上の実行ボタンを押してプログラムを実行すると、画面下のコンソールにprintln()を実行したときの変数の値が表示されます。println()は()内のデータをコンソール画面に表示する命令です。
変数の注意点
変数名は基本的に自由につけることができますが、プログラム構文として使われている単語(予約語)は使用できません。また、標準で存在する命令文など(printなど)と同じ名前の変数は避けましょう。
そして数字を先頭にした名前はつけることができません。(「1a」はだめ、「a1」はOK)
1連の流れで動作するプログラム内で同じ名前の変数は2つ以上定義できません。
変数名はどのようなデータが格納されるのか想像できるような名前にするのをおすすめします。
システム変数
Processingにはあらかじめシステムで定義している変数があります。主なものは以下になります。
width | ウィンドウの横幅 |
height | ウィンドウの高さ |
mouseX | ウィンドウ上にあるマウスのx座標 |
mouseY | ウィンドウ上にあるマウスのy座標 |
key | 押されているキーの値(文字)を格納 |
keyCode | 押されているキーのキーコードを格納 |
frameCount | draw()関数が呼ばれた回数 |
keyPressed | キーが押されていればtrue、そうでなければfalseを格納 |
mousePressed | マウスが押されていればtrue、そうでなければfalseを格納 |
これらのシステム変数を使うことで、より効率的にコードを書いたり、表現を豊かにするために役に立ちます。
この後の説明でサンプルコードなどで使われる場合もあるので、必要に応じてこの表を参照してください。
コメント
プログラム内でプログラムと認識しない記述ができます。
int data1 = 6;
int data2 = 10;
//float result2 = 0.0;
result1 = data1 * data2; //かけ算
println(result1);
/*
result2 = data2 / data1;
println(result2);
*/
コメントの記述は2種類あります。
3行目と4行目の「//」は行コメントです。この記述から1行の終わりまでがコメントとなります。
6〜9行目の「/* … */」は指定範囲をまとめてコメントにします。「/*」はコメント開始、「*/」コメント終了となり、複数行の説明コメントやプログラムの一部など部分的にコメントとしたい箇所に使います。