算術演算子 - 萌えJava超入門
第五章 演算子

算術演算子

足し算(+) 引き算(-) 掛け算(*) 割り算(/) 割り算の余り(%)
5種類の計算をしてみましょう。

+ - * / %

ウォーミングアップだ。
中1の数学ができればいけるだろう。
中二病の君たちなら軽い軽い。
中二病じゃないですけど!?

目次


1.足し算(+)

足し算については「文字・文字列・数値」の章で少し触れていますね。
少しデータ型を意識して試してみましょう。
変数も使ってみますね。

  //Sample11_01.java
  class Sample11_01 {
      public static void main(String[] args){
          System.out.println("--1--");
          System.out.println("97 + 24 = " + ( 97 + 24) );
          System.out.println("127.5 + 1.25 = " + ( 127.5 + 1.25) );

          System.out.println("--2--");
          int intA = 97;
          int intB = 24;
          System.out.println("intA + intB = " + ( intA + intB) );

          double douA = 127.5;
          double douB = 1.25;
          System.out.println("douA + douB = " + ( douA + douB) );

          System.out.println("--3--");
          int intAns = intA + intB;
          System.out.println("intAns = " + intAns );
          double douAns = douA + douB;
          System.out.println("douAns = " + douAns );

      }
  }
  

コマンドライン
> javac Sample11_01.java
> java Sample11_01

--1--
97 + 24 = 121
127.5 + 1.25 = 128.75

--2--
intA + intB = 121
douA + douB = 128.75

--3--
intAns = 121
douAns = 128.75
  

  1. System.out.printlnにリテラルの計算式を与えたもの
  2. 一度変数に代入して、System.out.printlnに変数の計算式を与えたもの
  3. 計算結果を変数に代入して、System.out.printlnに答えの変数を与えたもの
の3種類を試してみました。
intでも、doubleでも問題なく足し算ができていますね。

この調子で
計算結果を確認していこう。
おーっ!

2.引き算(-)

ソースコードを改変していろいろ試してみて下さい。
演算子の前後に半角空白を入れると見やすいですよ。

//Sample11_02.java
class Sample11_02 {
    public static void main(String[] args){

        int intA = 97;
        int intB = 24;
        double douA = 127.5;
        double douB = 1.25;

        int intAns = intA - intB;
        System.out.println(intA + " - " + intB + " = " + intAns);
        double douAns = douA - douB;
        System.out.println(douA + " - " + douB + " = " + douAns);
    }
}

コマンドライン
> javac Sample11_02.java
> java Sample11_02
97 - 24 = 73
127.5 - 1.25 = 126.25
  

んん?
なんか器用なことしてます?
設問の表示も変数にしてみた。
これなら変数を変えるだけで
設問も変わるだろ?
お~。
なるほどね。


3.掛け算(*)

掛け算の記号は「*」(アスタリスク)です。
Excel で慣れている人も多いのではないでしょうか。

//Sample11_03.java
class Sample11_03 {
    public static void main(String[] args){
        System.out.println(  7 *  6);
        System.out.println(111 *  5);
        System.out.println( 20 * 11);
        System.out.println(456 *100);
    }
}

上のサンプルのように、数値リテラルを列挙する場合には
半角空白で桁をそろえて記述する方が見やすい場合もあります。
C言語系のプログラマは
好んで使う書き方だと思う。
Pythonなどの言語では推奨されない様だ。
この辺は好みなのかもしれないな。

コマンドライン
> javac Sample11_03.java
> java Sample11_03
42
555
220
45600



4.整数で割り切れる割り算(/)

割り算の記号は「/」(スラッシュ)です。
これもExcel と同じですね。

//Sample11_04.java
class Sample11_04 {
    public static void main(String[] args){

        int intA = 256;
        int intB = 32;
        double douA = 127.5;
        double douB = 4.0;

        int intAns = intA / intB;
        System.out.println(intA + " / " + intB + " = " + intAns);
        double douAns = douA / douB;
        System.out.println(douA + " / " + douB + " = " + douAns);
    }
}

コマンドライン
> javac Sample11_04.java
> java Sample11_04
256 / 32 = 8  ← intの場合、割り切れる割り算ならOK
127.5 / 4.0 = 31.875
  

doubleの割り算は問題ありませんね。
intの割り算は、あえて割り切れる問題を用意しました。
intの割り切れない割り算は次のページで扱いましょう。

え? 
intの割り切れない割り算は
別メニューなんすか?!
もういやな予感しか
しないんですけど?



5.余り(%)

普段 割り算の余りを使うことって、
あんまりないっスよね?
小学校の算数以来かも。



プログラムの世界では
けっこう使いどころが多い演算子なんだ。
アイディア次第なところが楽しい。
実践的な使い方は後々紹介していこう。

//Sample11_07.java
class Sample11_07 {
    public static void main(String[] args){
        int count = 3;
        System.out.println( 0 % count); //0
        System.out.println( 1 % count); //1
        System.out.println( 2 % count); //2
        System.out.println( 3 % count); //0
        System.out.println( 4 % count); //1
        System.out.println( 5 % count); //2
        System.out.println( 6 % count); //0
        System.out.println( 7 % count); //1
        System.out.println( 8 % count); //2
    }
}

コマンドライン
> javac Sample11_07.java
> java Sample11_07
0
1
2
0
1
2
0
1
2

  3で割った余りは、「0」「1」「2」を繰り返しています。
  変数 count の値を変えると、繰り返す数値が変わります。



6.演算子の優先順位

  演算子の優先順位は、普通の算数と同じです。

演算子の優先順位
  1. ()」の中を最初に計算します
  2. 次に、「*」「/」「%」を計算します
  3. 最後に、「+」「-」を計算します。
    「*」「/」「%」の中に序列はなく、式の前から順番に計算します。

下線部から計算される。
この辺は大丈夫だろう。
//Sample11_09.java
class Sample11_09 {
    public static void main(String[] args){
        System.out.println((1 + 2) * 3); //「()」の中が先
        System.out.println(1 + 2 * 3); //「*」が先
        System.out.println(1 + 2 * 5 + 4 % 2); //「*」と「%」が先
        System.out.println(5 % 2 * 2); //前から順に計算
        System.out.println(2 * 5 % 2); //前から順に計算
        System.out.println(2 * (5 % 2)); //「()」の中が先
    }
}
コマンドライン
> javac Sample11_09.java
> java Sample11_09
9
7
11
2
0
2



算術演算子は、これでおしまいです。
お疲れ様でした。




© 2019 awasekagami