プログラミングの基礎は「計算」です。グラフィックスで直線や円を描くにも背景で、細かい計算が行われています。いくつかの要素を組み合わせるとき、のも「計算」が必要です。ここでは、計算の基礎となる、「変数」と「式」の書法を紹介します。たくさん出てきますが、とりあえず、こんな機能や演算がある、くらいを眺めてください。
文1; 文2; ... 文n;文の途中に 半角(英数字)の空白をいれてもかまいませんが、全角(ひらがな)の空白をいれてはいけません。文の先頭または末尾に // をつけると以後は<注釈>(説明)となり、プログラム実行の対象にはなりません。文字や文字列については別項で紹介します。
int kazu; //整数 float ondo; //小数int が型名で 整数 の意味です。 float は 小数点付の数字を意味します。計算機内部では小数と整数では計算の方法が異なるので区別して表現します。kazu は変数の名前で英字で始まる英数字です。英字は a-z A-Z に _ を含めます。<変数>に続いて = 次に<式>を書くと、<変数>に<式>の値を代入(保存)できます。
<変数>=<式>式は加減乗除の演算 +、-、*、/ と丸括弧 ( ) で記述します。整数の計算では 2/5 は0.4(これは少数)でなく 0 になることに注意してください。% は割った余りを返す演算です。
kazu = 1; kazu = 3+4*5; ondo = 12.5; ondo = (3.0-6.2)/2.0; kazu = 2/5 ;// kazu = 0 ondo = 2.0/5.0 ;// kau = 0.4変数の定義と初期値の設定を同時に行うことができます。このとき、先頭に final をつけると 以後の値の変更ができなくなります。定数として使いたいときに便利です。値を変えるとエラーになります。定数にするときは、通常名前に大文字を利用します
float pi=3.1415; final float PI=3.1415
short by=1; for(int i=0;i<16;i++){ println(by); by=(short)(by*2); } /// 結果 1 2 4 略 8192 16384 -32768小数の場合、float または double を利用します。Processing では標準は float で32bit(4バイト)を利用します。double は倍で 64ビットで計算します。他に、true/false の2値を扱う boolean、1バイトのデータを扱う byte 型の変数が利用できます。
int kazu; //整数 float ondo; //小数 kazu = 2/5 ;// kazu = 0 println(kazu); ondo = 2.0/5.0 ;// kau = 0.4 println(ondo);
ondo = 2/5; println(ondo); kazu = 2.0;
kazu = (int) 2.0;整数に関しては、他に 一つ増す(減らす)演算、++、--、があります。これは注釈の代入文の省略形式です。
int i=0; i++; //i=i+1; i--; //i=i-1;
short by=1; for(int i=0;i<16;i++){ println(by); by=(short)(by*2); } /// 結果 1 2 4 略 8192 16384 -32768小数の場合、floatは4バイトで、double は倍長の小数で8バイトになります。最近のコンピュータは double の計算をハードウエアで行いますから、double が標準になります。
boolean rs; rs = (kazu < 5) && (kazu > 3); //5より小さく、かつ、3より小さい rs = (kazu < 5 ) || (kazu > 3);//5より小さいか、または、3より小さい! は 論理否定になります。
rs = !(kazu == 5 ) ;// kazu != 5論理型演算は、次の章も条件付き実行や繰り返し実行での判断でよく利用されます。
double s=0.0; for(int i=0;i<10000;i++) s=s+0.0001; boolean rs; rs =(s==1.0);//sは1.0に等しいか? println(rs); println(s); ///結果 false 0.9999999747378752
kazu += 1; //kazu = kazu +1 kazu++; //kazu = kazu +1 kazu--; //kazu = kazu -1|,&,^ は整数の各ビットを倫理和(OR)、論理積(AND)、排他的論理和(EXOR)します。binary(kazu) は kazu を2進文字に変換します。
int i=10; println(binary(i)); int j=9; println(binary(j)); println(binary(i+j)); println(); println(binary(i<<2)); println(binary(i>>2)); ///以下は実行結果 1010 1001 10011 101000 10少し見慣れない演算子に 条件指定をする三項演算子があります。これは、条件演算が成立するとき 式1、しないとき 式2 の値をとり、次項で説明する if を使うこともできます。
(条件演算)?式1:式2; 例 int abs = (x>0)? x : -x ; //xの絶対値をabsとする
( ) [ ] | 括弧、配列要素の選択 |
++ -- ~ ! (型) | 増加、減少、ビット反転、キャスト |
* / % | 乗算、除算、余り |
+ - | 加算、減算 |
>> << >>> | 右シフト、左シフト、0フィルの右シフト |
>、 >=、 < 、<= | 比較 |
== 、!= | 同値、 |
&、、^ | | 論理積、排他論理和、論理和 |
&& 、|| | 短絡論理演算 |
?: | 三項演算 |
=、+=、 -=、 *-、 /=、 | 代入、演算付代入 |