1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javaの勉強 - 3

Last updated at Posted at 2017-05-10

四則演算とか

数値を足したり、引いたり、そういうの

・足し算 ⇒ +
・引き算 ⇒ -
・掛け算 ⇒ *
・割り算 ⇒ /
・割り算の余り ⇒ %

気になるのは『割り算の余り』くらいか。
とりあえず、いつもの基本形に各計算処理を入れてみる。

Yomogi.java
public class Yomogi{
	public static void main(String[] args){
		int a, b, result;		
		a = 3;
		b = 2;
		
		result = a + b;
		System.out.println(result);
		
		result = a - b;
		System.out.println(result);
		
		result = a * b;
		System.out.println(result);
		
		result = a / b;
		System.out.println(result);
		
		result = a % b;
		System.out.println(result);
	}
}

・変数は整数でa,b,resultの3つ
・計算結果をresultに入れて、出力
・resultは一度出力したら次の計算で再利用

実行

pic005.JPG

なるほど、余り(%)って
3 / 2 = 1 余り1
この部分だけが表示されるのね。

それにしても
計算結果だけ表示されても分かりづらい。
あと、割り算(/)は小数点以下も表示したいところ。

なので、次は小数点が使えるようにするのと
計算結果の前に何の計算なのか、文字列を入れたい。

変数で小数点を使う

整数は「int」だったけど、小数点まで必要なら「double」らしい。
他にも「float」とかあるみたいだけど、気づかなかったことにする。
必要になったときに覚えればいいし。

・浮動小数点の変数は「double」

double a, b, result;
a = 3.0;
b = 2.0;

result = a / b;

これで小数点まで使えるはず。
実行は↓の文字列追加とまとめてやることにした。

出力時に文字列変数内の数値を続けて表示させる

実行結果で「a / b = 答え」的な出力になることを目標とする。

・「a / b = 」部分は文字列として出力
・答えの部分は変数「result」の数値を表示
・printやprintlnで文字列と変数をつなぐのは「+
 ※「+」は四則演算の足し算ってイメージが強いな・・・

これらを実現するには↓こんな感じか

System.out.println("3.0 / 2.0 = " + result);

いつもの基本形の中に入れる。

Yomogi.java
public class Yomogi{
	public static void main(String[] args){
		double a, b, result;		
		a = 3.0;
		b = 2.0;
		
		result = a / b;
		System.out.println("3.0 / 2.0 = " + result);
	}
}

・変数を「double」で定義
・printlnの中で文字列変数を「+」で繋いで出力

実行

pic006.JPG

intのときは余りが切り捨てられて答えが「1」になっていたが
doubleでは無事「1.5」で表示された。

計算結果の前に式も表示されてイメージどおり。

整数と浮動小数点の混ざった計算とか

整数と浮動小数点で計算した結果を変数に入れるときに気を付ける。

いろいろな状況が考えられるだろうけど
とりあえず↓の6つのパターンだけ覚えておくことにした。


整数と浮動小数点の結果を浮動小数点の変数に入れる⇒OK

double result;
result = 3 - 1.5;

「result」には「1.5」が入る。
浮動小数点に変換されるっぽい?


整数と浮動小数点の結果を整数の変数に入れる⇒NG

int result;
result = 3 - 1.5;

実行したらエラーになる。
整数には変換してくれないみたい。

ここで①のとき勘違いしていたことに気づいた。
変数に入れるタイミングで整数⇒浮動小数点に変換していたと思っていたが
計算するときに浮動小数点に変換されていたのでは?と。

だからdoubleで定義した変数は使えて、intで定義した変数は使えなかった。
と言うことではないかと。


整数同士の計算結果を浮動小数点の変数に入れる⇒OK

double result;
result = 3 / 2;

「result」には「1.0」が入る。
整数で計算されているので小数点以下は切り捨てられる。

あれ?やっぱり変数に入れるタイミングで変換されてね?
計算時も変数への代入時もdoubleに変換されるのかもしれない。


浮動小数点同士の計算結果を整数の変数に入れる⇒NG

int result;
result = 3.0 / 2.0;

実行したらエラーになる。


②や④のとき、浮動小数点の数値を整数の変数に入れるには
↓のようにすればエラーではなくなる。

int result;
result = (int)(3.0 - 1.5);

計算式をカッコで囲んだ前に「(int)」をつければ強制的に整数に変換される。
これなら計算結果を整数の変数(result)に入れることができる。

ただし、整数にする時点で小数点以下は切り捨てられるので
「result」には「1」が入る。


整数の計算結果を強制的にdoubleに変換することもできる。

double result;
result = (double)(3 / 2);

「result」には「1.0」が入る。
整数で計算されるので小数点以下は切り捨てられる。
その後、浮動小数点に変換されるみたい。

③と一緒じゃね?「(double)」つけなくても浮動小数点に変換されるし。
と思ったが、どこかで使うかもしれないから一応覚えておくことにした。

今回はココまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?