【JAVA】計算の基本からintやdouble・x=x+1やx++などまで紹介

JAVAの計算の書き方

JAVAで計算するときのルールやつまずきそうなポイントをまとめました。

初歩の初から、なんで結果がこうなるの?と悩んだ内容まで網羅したので、参考になりましたらブックマークすると便利です。

JAVAで四則演算(+ – * /)で計算する

JAVAの計算の書き方

JAVAで計算をするときは「System.out.println(数値計算);」の書き方をします。

ちなみにかけ算は「*」、割り算は「/」、割った余りは「%」を使います。

JAVAで計算するプログラム
class keisan {
  public static void main (String[] args) {
    System.out.println(3 + 2); //たし算
    System.out.println(3 - 2); //引き算 
    System.out.println(3 * 2); //かけ算
    System.out.println(4 / 2); //割り算
    System.out.println(9 % 5); //9を5で割った余りが出力
  }
}

このプログラムをコンパイル・実行すると、以下のような計算結果が出力されます。

5
1
6
2
4

小数を使った割り算は答えが小数になる

整数と小数の計算結果

割り算は小数を使うときと使わないときで計算結果が変わります。

10を4で割ったときを見てみましょう。

JAVAで計算するプログラム
class keisan {
  public static void main (String[] args){
    System.out.println(10 / 4);
    System.out.println(10 / 4.0);
    System.out.println(10.0 / 4);
    System.out.println(10.0 / 4.0);
  }
}

整数を整数でわると、整数で出力されます。

小学校で「10を4でわった答えは、2あまり2」と習ったように整数値になります。

式に小数があると、小数で出力されるので計算結果は2.5です。

2
2.5
2.5
2.5

(””)の使い方しだいで計算結果が変わるので気をつけてください

ダブルコーテーションで計算結果が変わる図

「System.out.println(数値計算);」の書き方で計算結果が出力されますが、(“”)のつけ方次第で出力のされ方が変わります。

JAVAで計算するプログラム
class keisan {
  public static void main (String[] args) {
    System.out.println(9 + 5); //14が出力
    System.out.println("9 + 5"); //9 + 5 が出力
    System.out.println("9" + "5"); //95が出力
  }
}

14
9 + 5
95

数字を0で割るとエラーになります

数値を0で割ってはいけない図

たしか割り算の授業で0を割ることはできるけど、数字を0で割れないと習いました。

プログラミングでも同様に数字を0で割ると、コンパイルは成功しますが実行時にエラーが出力されます

0で割るNGプログラム
class keisan {
  public static void main (String[] args) {
    System.out.println(3 / 0); 
  }
}

ためしに実行してみると、以下のようなエラーメッセージが出ます。

Exception in thread “keisan” java.lang.Arithmeticexception: / by zero ……

複雑な計算式を実行するプログラムであれば、0で割らないように気をつけてください。

if文を使った条件分岐などで、うまく回避しましょう。

数値と変数を使った計算

今度は変数を使った計算を考えてみます。

変数ときくと難しそうな印象がありますが、「x = 3」や「y = 5」のように文字に数字を代入しているイメージでOKです。

今回は x, y の代わりに number1, number2 を用います。

変数を使うときは、最初だけ「データ型 変数名」として定義する必要があります。

整数を使うときは「int 変数名」小数を使うときは「double 変数名」です。

(変数を使うときは書き方のルールがあることを理解していただければ十分です)

変数を使った計算プログラム
class keisan {
  public static void main (String[] args) {
    int number1 = 3;
    int number2 = 5;
    System.out.println(number1 + 4);       //3 + 4
    System.out.println(number1 + number2); //3 + 5
    number2 = 10; //変数number2はすでに定義したのでintをつけない
    System.out.println(number1 + number2); //3 + 10
  }
}

コンパイル・実行すると以下のようになります。

7
8
13

前半2つのSystem.out.printlnでは、number1に3を代入しnumber2に5を代入した計算です。

最後のSystem.out.printlnでは、number2の値を5から10に上書きして計算しています。

int型(整数)とdouble型(小数)を使った計算

int型とdouble型の計算結果

int型とint型の計算結果はint型になり、double型とdouble型の計算結果はdouble型になります。

int型とdouble型の計算結果はdouble型になるので注意してください。

変数を使った計算プログラム
class keisan {
  public static void main (String[] args) {
    int number1 = 10;
    int number2 = 4;
    double number3 = 4.0;
    System.out.println(number1 / number2);
    System.out.println(number1 / number3);
    System.out.println(number3 / number3);
  }
}

以下のような出力結果になります。

2
2.5
1.0

1つ目の「System.out.println」では10 / 4を実行していますが、整数で出力するint型のため2が出力されます。

2つ目の10 / 4.0は出力が小数のdouble型であるため、2.5になります。

int型(整数)同士の計算をdouble型(小数)で出力する

int型の計算をdouble型で出力するには、System.out,printlnで計算する変数を強制的に型変換します。

「System.out,println((double)int型の変数);」でint型の変数をdouble型として扱うことができます。

変数を使った計算プログラム
class keisan {
  public static void main (String[] args) {
    int number1 = 10;
    int number2 = 4;
    System.out.println(number1 / number2);
    System.out.println((double)number1 / number2);
    System.out.println(number1 / (double)number2);
  }
}

「System.out,println(number1 / number2);」を(double)number1にすると、int型(整数)だったnumberはdouble型(小数)として扱われます。

double型(小数)の計算はdouble型で出力されるので、出力結果が2.5になるのです。

2
2.5
2.5

自己代入(x = x + 1)の計算

javaのx=x+1の式の図

プログラミングをしていると、「x = x + 1」のような式を見ることがあります。

はじめて目にしたときは意味が分からなかいですよね。

「x = x + 1」は x の値を上書きする式です。

プログラミングでは、「=」代入です。イコールではないので注意してください。

変数を使った計算プログラム
class keisan {
  public static void main (String[] args) {
    int x = 3; //xに3を代入
    System.out.println(x); //3が出力されます
    x = x + 1; //今のxに1を足して(右辺)、xの値を上書きしてる(左辺)
    System.out.println(x); //4が出力されます
  }
}

今回の場合、

「x = x + 1」では今のx(3)に1をたした値(4)を新たにxとして扱います!

なので、下から3行目の「System.out.println(x);」では4が出力されるのです。

また「x = x + 1」は「x += 1」のように省略して書けます。

基本の書き方 省略した書き方
x = x + 1; x += 1;
x = x – 1; x -= 1;
x = x * 1; x *= 1;
x = x / 1; x /= 1;
x = x % 1; x %= 1;

変数に1をたすとき1を引くときに限り、もう1つ省略形があります。

「x = x + 1」は「x += 1」以外に「x++;」と書け、
「x = x – 1」は「x -= 1」以外に「x–;」と書けます。

自己代入に関して、分かりづらい x=x+1, x+=1, x++, ++x の意味や違い、計算結果を解説にまとめたので合わせてご覧ください。

x=x+1のイメージ 分かりづらい x=x+1, x+=1, x++, ++x の意味や違い、計算結果を解説

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です