算術演算と代入演算の練習問題[解答および解説]
算術演算と代入演算まで(2-7まで)の問題記事の解答及び解説記事です。
プログラムの解答はあくまでも一例です。問題によっては違う記述方法もあります。
【Java】算術演算と代入演算 練習問題
以下のプログラム内には複数の算術演算と代入演算があります。実行する前にどのような結果になるかを予想し、workフォルダ内に「Exam05.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。
※プログラム内にコンパイルエラーが起こる記述があります。コンパイルエラーの行とその出力処理は削除するか行頭に//を入れてコメントにしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
class Exam05{ public static void main(String[] args){ //算術演算 System.out.println(5 + 3 * 2); System.out.println(3 / 2 + 1); System.out.println('あ' + 1); System.out.println(5 / 2 * 2.5); //代入演算 int a = 5 / 2; System.out.println(a); double b = 5 / 2; System.out.println(b); float c = 3 / 2; System.out.println(c); //byte d = 1; //byte e = d + d; //System.out.println(e); //float f = 3.14; //System.out.println(f); } } |
実行結果
c:\work>javac Exam05.java
c:\work>java Exam05
11
2
12355
5.0
2
2.0
1.0
Exam05.javaの解説
プログラム内の各行は以下のような挙動となっています。
プログラム | 補足 |
---|---|
5 + 3 * 2 | 掛け算が先に行われ、3(int) * 2(int)で計算される。結果の6(int)に5(int)が加算され、11(int)となる。 |
3 / 2 + 1 | 割り算から先に行われ、3(int) / 2(int)で計算される。int同士の割り算は結果もintとなり、1(int)が結果となる。結果の1(int) に1(int)が加算され、2(int)となる。 |
‘あ’ + 1 | ‘あ'(char)+1(int)では、charは内部で数値を持っているため、内部の数値に1が加算され、12355(int)となる。 |
5 / 2 * 2.5 | 5(int) / 2(int)で計算を行うが、int同士の為、結果は2(int)となる。2(int) * 2.5(double)が行われ、5.0(double)の結果となる。 |
int a = 5 / 2; System.out.println(a); |
5(int) / 2(int)はint同士の演算となり演算結果は2(int)の為、int aには代入可能。aには2(int)が代入される。 |
double b = 5 / 2; System.out.println(b); |
5(int) / 2(int)はint同士の演算となり演算結果は2(int)。代入するbはdouble型ですが自動的に型変換が行われます。2(int)をdoubleに変換し、2.0(double)が代入されます。 |
float c = 3 / 2; System.out.println(c); |
3(int) / 2(int)はint同士の演算となり演算結果は1(int)。代入するcはfloat型ですが自動的に型変換が行われます。2(int)をfloatに変換し、1.0(float)が代入されます。 |
byte d = 1; byte e = d + d; System.out.println(e); |
b(byte) + b(byte)はbyte同士の演算となり演算結果は2(int)。代入するeはbyte型ですが自動的に型変換はできません。代入ができないため、代入時にコンパイルエラーとなります。 |
float f = 3.14; System.out.println(f); |
3.14(double)をfloat型のfには自動的に型変換が行われないため、代入時にコンパイルエラーとなります。。 |