コンテンツにスキップ

文法のまとめ:演算子、変数、配列、関数、条件分岐、繰り返し

1. コメント

かいつまんで言うと

  • CやC#、JavaScriptなどと同じ書き方をします。

一行コメント

//のあとがコメントになります。

// これがコメントです。

複数行コメント

/*から*/ までがコメントになります。

/*
ここにコメントを書きます。
複数行書けます。
*/

2. 演算子

かいつまんで言うと

  • 演算子には主に、算術演算子、比較演算子、論理演算子があります。

算術演算子

int a = 10;
int b = 2;
// 足し算
a + b; // 12
// 引き算
a - b; // 8
// 掛け算
a * b; // 20
// 割り算
a / b; // 5
// 割った余り
a % b; // 0

代入と計算を一緒に行う演算子

a += b; // a=a+bと同じ意味
a -= b; // a=a-bと同じ意味
a *= b; // a=a*bと同じ意味
a /= b; // a=a/bと同じ意味
a %= b; // a=a%bと同じ意味

インクリメントとデクリメント

変数を1だけ増やしたり1だけ減らしたりするのはよく使うので、特別の書き方をします。1だけ増やすのを インクリメント 、1だけ減らすのを デクリメント と言います。

int a = 10;
a++; // インクリメント
a--; // デクリメント

比較演算子

主に条件分岐繰り返しで使う、値や変数を比較する演算子です。

a == b // aとbは等しい
a != b // aとbは異なる
a < b // aはbより小さい
a > b // aはbより大きい
a <= b // aはb以下
a >= b // aはb以上

論理演算子

「かつ」&&

// 例:xが100以上かつ200以下の場合に赤く、それ以外は緑にする
if ((x >= 100) && (x <= 200)) {
fill(255, 0, 0);
} else {
fill(0, 255, 0);
}

「または」 ||

// 例:xが100以下または200以上の場合に青に、それ以外は赤くする
if ((x <= 100) || (x >= 200)) {
fill(0, 0, 255);
} else {
fill(255, 0, 0);
}

「ではない」!

// 例:xが100ではない場合に緑に、それ以外は青くする
if (!(x == 100)) {
fill(0, 255, 0);
} else {
fill(0, 0, 255);
}

3. 変数

かいつまんで言うと

  • Processingの変数にはJavaScriptなどと違って型があります。
  • 変数を使う前に宣言する必要があります。

変数の宣言

// 変数の型 変数の名前;
int a;
boolean z;

この例は、整数型(int)のaという名前の変数と、真偽値型(boolean)のzという名前の変数を宣言しています。

変数の型

種類内容読み方値の例
int整数イント(integerインテジャーの略)0 6 100 -12
float小数フロート1.2 0.445
String文字列ストリング"tento" "name"
char文字チャー(characterキャラクターの略)'a' 'Z'
boolean真偽値ブーリアンtrue false

数字の変数

かいつまんで言うと

  • 計算をするときは変数の型に注意しましょう。たとえば、int(整数)のまま割り算をしても答えはint(整数)のままです。

intとfloat

intのまま割り算をすると小数点以下が切り捨てになります。

int a = 11;
int b = 4;
a / b; // 2

そこで、float()を使って変換してから計算します。

int a = 11;
int b = 4;
// いったんfloatに変換する
float c = float(a);
float d = float(b);
c / d; // 2.750

乱数を使うには

乱数は、 random() を使います。

float a = random(7); // 0から7までのあいだの少数が出力される
float b = random(50,100); // 50から100までのあいだの少数が出力される

文字列の変数

かいつまんで言うと

  • 文字はchar、文字列はString
  • 文字列の型は String 。Sが大文字なことに注意。

文字と文字列

「文字」charは、1文字のデータです。「文字列」Stringは、1文字よりも長いデータを入れることができます。 文字データは ' (シングルクオート)で囲み、文字列データは " (ダブルクオート)で囲みます。

char a = 'A';
String x = "TENTO";

文字列の操作

String t1 = "I am a";
String t2 = " Hero";
// 文字列をくっつける
String title = t1 + t2; // titleは"I am a Hero"になります。
// 文字列の長さ
title.length(); // 11になります。
// 分割
String[] x = split(title, " "); // 空白スペースで分割します。
x[1]; // "am"になります。

文字列と数字の変換

データを文字列に変換するには str() 関数を用います。

int a = 10;
int b = 20;
String sa = str(a);
String sb = str(b);
a + b; // 30になります。
sa + sb; // "1020"になります。

4. 配列

かいつまんで言うと

  • 配列を宣言するときには [] をつけます。
  • 配列は最初に初期化する必要があります。
  • 配列の添え字(そえじ)は 0 から始まります。

配列の宣言

int[] numbers;
String[] cars;

配列の初期化

初期化するときには、new(ニュー) を使います。

numbers = new int[3];
cars = new String[5];

この例では、変数numbersは3つのデータが入るようになり、carsには5つのデータが入れられるようになります。中身は空です。

配列の中身を一度に入れてしまうやり方

初期化時に、最初からデータを入れてしまうやり方があります。

int[] numbers = {7,5,3};
String[] cars = {"bmw", "toyota", "honda", "mazda", "suzuki"};

配列へのアクセス

配列の一つ一つの要素には [] を使ってアクセスします。 [] の中に入れる数字(添え字)は 0から始まる ことに注意してください。

String[] robots = {"Gundam", "Doraemon","Atom"};
robots[0]; // 1番目の要素。中身は"Gundam"
robots[2]; // 3番目の要素。中身は"Atom"
// robotsは3個しか定義されいないので、4番目にアクセスしようとするとエラーになります。
robots[3] = "Macross"; // エラー!!

5. 関数

かいつまんで言うと

  • 処理をまとめて扱いやすくするもの

kansuu.png

戻り値の型 関数名(引数の型 引数1, 引数の型 引数2, ...){
処理をここに書く
return 戻り値; // 戻り値がない場合は省略可
}

例えば、2つの整数の和を返してくれる関数sum()を作るなら次のようにします。

int sum(int a, int b){
int sum = a + b;
return sum;
}
sum(4, 7) // 戻り値11

6. 条件分岐(じょうけんぶんき)

if文

if(<条件>){
<実行すること>
}
// 例:キーがaだったらxを10だけ小さくする
if(key == 'a'){
x -= 10;
}

if〜else文

if(<条件>){
<条件があてはまったときに実行すること>
}else{
<条件があてはまらなかったときに実行すること>
}
// 例:xが100よりも大きかったら赤く、それ以外は緑にする
if(x > 100){
fill(255, 0, 0);
}else{
fill(0, 255, 0);
}

if〜else if文

if(<条件1>){
<条件1があてはまったときに実行すること>
}else if(<条件2>){
<条件2があてはまったときに実行すること>
}else{
<条件があてはまらなかったときに実行すること>
}
// 例:xが100よりも大きかったら赤く、xが50よりも大きかったら黄色に、それ以外は緑にする
if(x > 100){
fill(255, 0, 0);
}else if(x > 50){
fill(255, 255, 0);
}else{
fill(0, 255, 0);
}

7. 繰り返し

while文

int a = 0;
while(a < 5){
ellipse(a * 100, 100, 10, 10);
a += 1;
}

for文

for(int a = 0; a < 5; a++){
ellipse(a * 100, 100, 10, 10);
}