目次

演算子

演算子とは

+,-,*,/,などを演算子とよびます。四則演算の他にも、剰余算、論理演算、ビット演算などの演算子があります。演算子には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を加えてから使う。

ファイル名 Prapra.java

int x, y;
x = 0;
y = x++ * 10;
System.out.println ( "x = " + x );
System.out.println ( "y = " + y );

結果は

x = 1
y = 0

ファイル名 Prapra2.java

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;
もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified