トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Javaの文法:演算子

 算術演算子

  • ほとんどのプログラミング言語では数字データに対して四則演算を始めとする算術演算を行うことができる。
  • Java言語の場合には、以下の記号が使われる
記号 意味 使用例 x=5;y=2の結果
+ 足す(加算) x + y 7
- 引く(減算) x - y 3
* 掛ける(乗算) x * y 10
/ 割る(除算) x / y 2
% 余り(剰余算) x % y 1

算術演算子を用いたサンプルプログラム

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sample.basic;

public class SimpleCalculation {
    public static void main(String[] args) {
        int x=7;
        int y=5;
        System.out.println("変数xは"+x);
        System.out.println("変数yは"+y);
        System.out.println("x+yは"+(x+y));
        System.out.println("x*yは"+(x*y));
        System.out.println("x/yは"+(x/y));
        System.out.println("x-yは"+(x-y));
    }
}

 算術+代入の短縮表現とインクリメント、デクリメント

算術演算と代入操作の短縮表現

  • 変数に何らかの算術演算を行い、元の変数に代入しなおす操作はプログラム中でよく行われる表現であるため、短縮した表現が用意されている。
  • 四則演算の対応表
演算記号 短縮表現 使用例
+ += x=x+2 → x+=2
- -= x=x-2 → x-=2
* *= x=x*2 → x*=2
/ /= x=x/2 → x/=2

インクリメント、デクリメント

  • 変数に1加え、あるいは、1減らし、元の変数に代入する操作は、プログラム中でよく使われる表現である。そのため、用意されている短縮した表現が、インクリメント、デクリメントである。
インクリメント
<変数>=<変数>+1であるとき<変数>++。例)x=x+1 → x++;
デクリメント
<変数>=<変数>-1であるとき<変数>--。例)x=x-1 → x--;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package sample.basic;

public class Increment {
    public static void main(String[] args) {
        int i=2;
        System.out.println("変数iは"+i+"である");
        i++;
        System.out.println("変数iは"+i+"である");
        i++;
        i++;
        i++;
        System.out.println("変数iは"+i+"である");
        i--;
        i--;
        i--;
        i--;
        i--;
        System.out.println("変数iは"+i+"である");
    }
}

 比較演算子

  • 比較演算子とは二つの変数や式の比較を行い、真偽値(true/false)で返す演算子である。
  • Java言語の場合には、以下の記号が使われる
記号 意味 使用例 x=5;y=2の結果
> 左辺が右辺より大きい? x > y true
>= 左辺が右辺以上? x >= y true
< 左辺が右辺より小さい? x < y false
<= 左辺が右辺以下? x <= y false
== 左辺と右辺が等しい? x == y false
!= 左辺と右辺が等しくない? x != y true

  • "="は代入、"=="は比較であるが間違えやすいので注意する。

比較演算子を用いたサンプルプログラム

1
2
3
4
5
6
7
8
9
10
11
12
package sample.basic;

public class Compare {
    public static void main(String[] args) {
        int v=4;
        System.out.println("変数vは3である:"+(v==3));
        System.out.println("変数vは5ではない"+(v!=5));
        System.out.println("変数vは5より大きい"+(v>5));
        System.out.println("変数vは3以上である"+(v>=3));
        System.out.println("変数vは3以下である"+(v<=3));
    }
}

 論理演算子

  • 論理演算子は、複数の条件式を組み合わせる場合、あるいは、条件式の評価を逆転させる場合に用いる。
記号 意味 使用例
&& 論理積(and)、両方ともに真でなければ偽 true&&false → false
|| 論理和(or)、どちらかが真であれば真 true||false → true
! 否定(not)、真偽値を逆にする !true → false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package sample.primitive;

public class Boolean {
    @SuppressWarnings("unused")
    public static void main(String[] args) {
        System.out.println("true and trueは"+(true&&true));
        System.out.println("true and falseは"+(true&&false));
        System.out.println("true or trueは"+(true||false));
        System.out.println("true or falseは"+(true||false));
        System.out.println("true and trueの反対は"+!(true&&true));
        System.out.println("true and falseの反対は"+!(true&&false));
        System.out.println("true or trueの反対は"+!(true||false));
        System.out.println("true or falseの反対は"+!(true||false));
    }
}

 ビット演算子、シフト演算子

  • ビット演算子、シフト演算子については省略

 課題

1
2
3
4
5
6
7
8
9
10
11
12
13
package sample;

public class YearSeconds {
    public static void main(String[] args) {
        //このプログラムはわかりやすくするために変数名を日本語にしていますが
        //本来はしない方が無難です。
        int 一分の秒数=60;
        int 一時間の分数=60;
        int 一日の時間数=24;
        int 一年の日数=365;    //計算を簡単にするため一年を365日で決めうちしています。
        System.out.println("一年間の秒数は"+(一年の日数*一日の時間数*一時間の分数*一分の秒数)+"秒です。");
    }
}
  1. 上記のYearSeconds.javaを参考にして、自分が生まれてからいままでに経過した秒数を計算するプログラムを作成しなさい。
  2. 生まれてから今までに11億秒経っているとすれば、その人は何歳になるか?
  3. 「1.」で作成したプログラムを、一度どこかの変数に代入しておき、それを自分と年齢と近いと思われる芸能人の年齢と比較し、どちらが何秒若いかを表示するプログラムに修正しなさい。
  4. int型の任意の変数を三つ宣言し、普通に1を加算するときに、普通に1加えて代入したもの、その短縮形で書いたもの、インクリメントで書いたものの結果を比較するプログラムを作成しなさい。
  5. X=A and (B or C)でAが真、Bが偽、Cが真のとき、Xの値はどうなるか?
Boolean.java Compare.java Increment.java SimpleCalculation.java YearSeconds.java

最終更新時間:2009年05月13日 11時38分07秒