第3章 演算子

この章では JAVA の演算子について説明します

HOMEPAGE

演算子


プログラミングにおける演算子

演算子は、変数や値に対して操作を実行するために使用されます。

数学の加減乗除などの演算には「+、ー、×、÷」という記号が使われますが、プログラミングにおいてはさらに多くの記号が使われ、その用途も様々です。
それぞれの演算子とその用途を理解して使えるようにしていきましょう。

まず以下の例を見て見ましょう。

例:

  int × = 100 + 50
演算子
100 + 50

この例では100と50という数字が値で、+符号は演算子です。
+は2つの値を足すためにも使われますが、変数と値、変数と変数などを演算することにも使用できます。

例:
[JSample3_1.java]
package JSample;
public class JSample3_1{
	public static void main(String[] args){
		int sum1 = 100 + 50;	// 150 (100 + 50)
		int sum2 = sum1 + 250;	// 400 (150 + 250)
		int sum3 = sum2 + sum2;	// 800 (400 + 400)
		System.out.println(sum1);
		System.out.println(sum2);
		System.out.println(sum3);
	}
}

実行結果
150
400
800

演算子は上の例の
4行目 値(100)と値(50)の足し算
5行目 変数(sum1)と値(250)の足し算
6行目 変数(sum2)と変数(sum2)の足し算
のように使用することができます。

次に、Javaで利用される基本的な演算子を説明します。
Javaで利用する演算子は次のように分類されます。



演算子分類

算術演算子は、一般的な数学演算を実行するために使用されます。

演算子 意味
+ a+b
- a-b
** a*b
/ a/b
++(インクリメント) (値が代入されている変数に)値を1だけ増やす a++/++a
--(デクリメント) (値が代入されている変数に)値を1だけ減らす b--/--b

次の例は4、5、6を5で割った余りを計算しています。
例1:4 %  → 4
例2:5 % 5→ 0
例3:6 % 5→ 1

例1のように、割られる値(4)が割る(5)よりも小さい値では、あまりはその値自身です。
例2のように、割られる値(5)がわる値で割り切れるので余りは0です。

インクリメント・デクリメントは、変数の前に書く「前置」、後ろに書く「後置」がある。

また、単独で使う場合は、前置でも後置でも機能は同じですが、式の中で使う場合には、前置と後置では機能が異なるため注意が必要です。
例 4:
int sum ;
int x ;
x = 5 ;
sum = ++ x ;

例4のように式の中でインクリメントを前置で使用した場合、xの値は6、sumの値は6となります。
前置の機能(4行目)
①xを1増やして6にする。
②増やした後の値(6)を返し、sumに代入。

例 5:
int z ;
int y ;
y = 5 ;
wa = y++ ;

例5のように式の中でインクリメントを後置で使用した場合、yの値は6、waの値は5となります。
後置の機能(4行目)
①yを1増やして6にする
②増やす前の値(5)を返し、zに代入


代入演算子は、変数に値を代入するために使用されます。

演算子 意味 代入演算子での同等な式
a=b 変数aにbを代入する
a++ 変数aの値を、bだけ増やす a = a + b
a-=b 変数aの値を、bだけ減らす a = a - b
a*=b 数aの値を、b倍した値にする a = a * b
a/=b 変数aの値を、bで割った値にする a=a/b
a%=b 変数aの値を、bで割った余りの値にする a=a%b
※表2~6行目の演算子は、複合代入演算子といい、演算を簡略化してわかりやすく書くための演算子です。

例:
int x =10;
x += 5;

1行目では、代入演算子(=)を使用して、変数(x)に値(10)を代入します。
次に2行目で、複合代入演算子(+=)により、「xの値を5だけ増やす」という演算になります。
そのためxの値は15となります。

関係演算子は、2つの値を比較するために使用されます。
この関係演算子は、次紹介する論理演算子とともに条件を書くための演算子として用いられる。
この演算子を使って条件を書くことは、「第4章条件分岐」、「第5章繰り返し」などの基礎となる考え方なので理解しておきましょう。

演算子 使用例 意味
== a== b aとbは等しい
!= a != b aとbは等しくない
< a < b aはbより大きい(超える)
> a > b aはbより小さい(未満)
>= a >= b aはbより大きいか等しい(以上)
<= a <= b aはbよりも小さいか等しい(以下)


例:
a>0    ・・・ aは正の数
b>=10  ・・・ bは10以上
c>d+5  ・・・ cはd+5よりも大きい
e+f>=10 ・・・ e+fは10以上	
関係演算子は例の1行目・2行目のように、変数と値を比較するために使われます。
それ以外にも例の3行目・4行目のように、変数や式とも比較することができます。
この場合、右辺と左辺のどちらにも変数や式を書くことができます。

論理演算子は、2つ以上の関係式を組みあせて、複雑な条件を作成するために使います。

演算子 使用例 意味
&& A && B かつ(AND演算)
A,Bの関係式が両方ともTrueの時のみtrueになる
|| A || B または(OR演算)
A,Bのどちらか一方または両方がtrueならtrueになる
^ A ^ B 片方だけtrue(XOR演算)
片方がtrueでもう片方がfalseならtrueになる
! A ! B 〜でない(NOT演算)
trueならfalseに、falseならtrueに反転する
例:
int x =30
int y =100
			
boolean b1 = x>=40 && y>=90;・・・x 40以上かつ y 90以上
boolean b2 = x>=40 || y>=90;	・・・x 40以上または y 90以上
boolean b3 = x>=40 ^ y>=90;	・・・x 40以上、 y 90以上の一方だけtrue
boolean b4 = !(x>=40);	・・・x 40以上ではない
例の4行目から7行目、青字の部分が実際に論理演算子を使った関係式です。
この場合、1・2行目で定義した「x」「y」の値を4〜7行目の関係式で評価し、boolean型の変数b1〜b2に結果を代入します。
結果はそれぞれ、b1=false、b2=true、b3=true、b4=trueとなります。


練習

問題[JEx3_1.java]
構文の◯を入れ替えて、コードを完成してください。

package JSample
	  public class JEx3_1{
	  public static void main(String[]args){
	  int a = 5;
	  int b = 8;
	  ◯ + ◯;
	  System,out,println(a);
	  ◯ -= ◯ ;
	  System,out,println(b);
	  System,out,ptintln(a+◯);
	  a = a + ◯;
	  System,out,println(a);
	  }
	  }
実行結果
8
4
15
12


問題[JEx3 _2.java]
次の1〜9に基づいて、プログラムを記述してください。
変数aを宣言し、7+6の結果を代入
変数bを宣言し、15-4の結果を代入
aとbの値を実行結果のように表示
++を用いて、aを1加算
--を用いて、bを1減算
aとbの値を実行結果のように表示
%=を用いて、aを3で割った余りをaに代入
*=を用いて、bに5をかけた値をbに代入
aとbの値を実行結果のように表示

package JSample
  	public class JEx3_2{
  	public static void main(string[] args){
  	
  	//ここから処理を書いていきます
  	}
  }
実行結果
a = 13 , b =11
a = 14 , b= 10
a = 2 , b = 50


戻る