+,-,*,/,などを演算子とよびます。四則演算の他にも、剰余算、論理演算、ビット演算などの演算子があります。演算子には1文字だけでなく2文字以上の記号の組み合わせもあります。2文字以上からなる場合、文字の間にスペースを入れてはいけません。
四則演算はどの言語でもだいたい同じです。余りを求める演算子もよくある決まりです。 + は文字列の連結にも使われます。
A + B AとBを足す。 A - B AからBを引く。 A * B AとBをかける。 A / B AをBで割る。 A % B AをBで割った余りを求める。
省略した書き方です。C言語で広く使われていました。+= B はBを足してから(+)代入(=)と考えるといいでしょう。
A = B AにBを代入する 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 とおなじ
これもC言語で広く使われていた省略した書き方です。C++の語源でもあります。
A++ Aに1加算 A = A + 1 とおなじ。 ++A Aに1加算 A = A + 1 とおなじ。 A-- Aに1減算 A = A - 1 とおなじ。 --A Aに1減算 A = A - 1 とおなじ。
2つの値を比較します。結果は boolean の値になります。つまり、true または false です。
A == B AとBは等しい A != B AとBは等しくない A < B AはBより小さい(等しくはない) A > B AはBより大きい(等しくはない) A <= B AはBより小さいか等しい A >= B AはBより大きいか等しい
2つのboolean値を比較します。結果も boolean になります。つまり、true または false です。
A & B AとBのANDをとる(両方ともtrueのときtrue) A && B AとBのANDをとる(両方ともtrueのときtrue) A | B AとBのORをとる(どちらかがtrueのときtrue) A || B AとBのORをとる(どちらかがtrueのときtrue) A ^ B AとBの排他的論理和をとる(異なるときtrue) !A AのNOTをとる(trueならfalse, falseならtrue)
省略形は無理に使う必要はありません。A += Bがわかりにくければ A = A + B を使いましょう。
a++; というように、単一で使う場合は、a++; も ++a; も同じです。式の中で使われるときは違いがあります。
a++ 使ってから1を加える。 ++a 1を加えてから使う。
int x, y; x = 0; y = x++ * 10; System.out.println ( "x = " + x ); System.out.println ( "y = " + y );
結果は
x = 1 y = 0
int x, y; x = 0; y = ++x * 10; System.out.println ( "x = " + x ); System.out.println ( "y = " + y );
結果は
x = 1 y = 10
どちらも x の値は同じなのに、y の値が違うところに注目してほしい。なれないうちは単独で使うのが無難だろう。
& と && の違いは A & B が、A, B 両方の評価を必ず行うのに対して、A && B は、A を評価した時点で全体を判断できる場合は B の評価をしないということ。| と || も同様。
演算には順序がある。たとえば、* や / は + や - に比べて優先度が高いので先におこなわれる。優先度が同じ演算は左から順におこなわれる。優先度について自信がなければ、先にやってほしいものを( )でくくればよい。また簡単なテストプログラムを作ってテストするのもよい。
解答は toi02.txt という名前のファイルに書いて、java のフォルダに保存すること。
問1 次の場合、それぞれの変数はどんな値になるか。ただしすべての変数は int とする。
(1) A = 3 + 4 * 5; (2) B = 1001 % 7; (3) C = 1001; C /= 7; (4) D = 23; D++;
問2 次の場合、E = 3 , F = 13 となる。どのようにしてそうなるかを説明しなさい。
E = 0; F = E++ + E++ + E++ + 10;
問3 次の場合、E = 4 , F = 16 となる。どのようにしてそうなるかを説明しなさい。
E = 0; F = E++ + E++ + E++ + E++ + 10;