各種演算やキャスト 練習問題
今回の練習問題は、演算を複数組み合わせた少し難しい問題です。通常、この問題のようなプログラムを記述すると可読性が下がります。ですが、試験などで出題されることもありますのでチャレンジしてみたい人は解いてみてください。
確認が必要であれば、コンパイルおよび実行を行ってください。
今回は各練習問題の後に、どのような結果になるかも掲載しています。
【Java】算術演算 練習問題
以下のプログラムは算術演算の例です。結果を予想してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
class OperatorTest01{ public static void main(String[] args){ /* 以下の演算がどのような結果になるか予想してください (コンパイルエラーや実行時エラーになる場合もあります) */ System.out.println(7 / 0); System.out.println(0 / 7); System.out.println(0 / 0); System.out.println(50 - 8 * 4); System.out.println(8 * 2 - 2); System.out.println(5 / 3 * 4 + 2); System.out.println(8 * 3 + 4 - 2); System.out.println(10 * 5 + 3 * 3); System.out.println(( 7 + 3 ) / ( 7 - 3 )); System.out.println(11 / 2 + 5 / 1); System.out.println(3 * 2 + 6 / 3); System.out.println(( 7 * 3 ) / 3 - 3); System.out.println(12 / ( 5 - 2 )); System.out.println(( 8 * 5 - ( 8 - 4 ) ) / 3); System.out.println(( 10 - 2 / 2 ) * ( 3 + 4 * 2 )); System.out.println((3 - 1 / ( 5 + 1 ) ) + 4); System.out.println(5 % 1); System.out.println(7 % 2); System.out.println(21 % 7); System.out.println(21 % 11); System.out.println(21 % 0); System.out.println(5 % 5 + 8 * 4); System.out.println(7 % 4 / 3 - 1); System.out.println(8 + 8 * 2 % 3); System.out.println(( 5 % 3 ) - ( 20 % 5 )); } } |
実行時エラー 【7 / 0】
0 【0 / 7】
実行時エラー 【0 / 0】
18 【50 – 8 * 4】
14 【8 * 2 – 2】
6 【5 / 3 * 4 + 2】
26 【8 * 3 + 4 – 2】
59 【10 * 5 + 3 * 3】
2 【( 7 + 3 ) / ( 7 – 3 )】
10 【11 / 2 + 5 / 1】
8 【3 * 2 + 6 / 3】
4 【( 7 * 3 ) / 3 – 3】
4 【12 / ( 5 – 2 )】
12 【( 8 * 5 – ( 8 – 4 ) ) / 3】
99 【( 10 – 2 / 2 ) * ( 3 + 4 * 2 )】
7 【(3 – 1 / ( 5 + 1 ) ) + 4】
0 【5 % 1】
1 【7 % 2】
0 【21 % 7】
10 【21 % 11】
実行時エラー 【21 % 0】
32 【5 % 5 + 8 * 4】
0 【7 % 4 / 3 – 1】
9 【8 + 8 * 2 % 3】
2 【( 5 % 3 ) – ( 20 % 5 )】
0 【0 / 7】
実行時エラー 【0 / 0】
18 【50 – 8 * 4】
14 【8 * 2 – 2】
6 【5 / 3 * 4 + 2】
26 【8 * 3 + 4 – 2】
59 【10 * 5 + 3 * 3】
2 【( 7 + 3 ) / ( 7 – 3 )】
10 【11 / 2 + 5 / 1】
8 【3 * 2 + 6 / 3】
4 【( 7 * 3 ) / 3 – 3】
4 【12 / ( 5 – 2 )】
12 【( 8 * 5 – ( 8 – 4 ) ) / 3】
99 【( 10 – 2 / 2 ) * ( 3 + 4 * 2 )】
7 【(3 – 1 / ( 5 + 1 ) ) + 4】
0 【5 % 1】
1 【7 % 2】
0 【21 % 7】
10 【21 % 11】
実行時エラー 【21 % 0】
32 【5 % 5 + 8 * 4】
0 【7 % 4 / 3 – 1】
9 【8 + 8 * 2 % 3】
2 【( 5 % 3 ) – ( 20 % 5 )】
【Java】キャストと型 練習問題
以下のプログラムはキャストや型に関するプログラム例です。結果を予想してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class OperatorTest02{ public static void main(String[] args){ /* 以下の演算がどのような結果になるか予想してください (コンパイルエラーや実行時エラーになる場合もあります) */ System.out.println((int)7.2); System.out.println((int)8); System.out.println((byte)127); System.out.println((byte)128); System.out.println((double)5.2F); System.out.println((float)5.2D); System.out.println((double)5.2); System.out.println((double)6); System.out.println((double)6 % 3); System.out.println((double)(1 % 5)); System.out.println((double)7 / (double)4); System.out.println((double)(9 / 2)); System.out.println(11 / 4 - (double)5); System.out.println(11 / 4 - (int)4.8); System.out.println((double)7 / (int)1 + (double)(7 / 3)); System.out.println(10 / ( 3 * 1 + 2 ) - (double)5); System.out.println((short)8 + (short)120); System.out.println((double)(int)7.2); System.out.println((int)((short)9.1)); System.out.println((int)((double)(5 / 2 + 3))); } } |
7 【(int)7.2】
8 【(int)8】
127 【(byte)127】
-128 【(byte)128】
5.199999809 【(double)5.2F】
5.2 【(float)5.2D】
5.2 【(double)5.2】
6 【(double)6】
0 【(double)6 % 3】
1 【(double)(1 % 5)】
1.75 【(double)7 / (double)4】
4 【(double)(9 / 2)】
-3 【11 / 4 – (double)5】
-2 【11 / 4 – (int)4.8】
9 【(double)7 / (int)1 + (double)(7 / 3)】
-3 【10 / ( 3 * 1 + 2 ) – (double)5】
128 【(short)8 + (short)120】
7 【(double)(int)7.2】
9 【(int)((short)9.1)】
5 【(int)((double)(5 / 2 + 3))】
8 【(int)8】
127 【(byte)127】
-128 【(byte)128】
5.199999809 【(double)5.2F】
5.2 【(float)5.2D】
5.2 【(double)5.2】
6 【(double)6】
0 【(double)6 % 3】
1 【(double)(1 % 5)】
1.75 【(double)7 / (double)4】
4 【(double)(9 / 2)】
-3 【11 / 4 – (double)5】
-2 【11 / 4 – (int)4.8】
9 【(double)7 / (int)1 + (double)(7 / 3)】
-3 【10 / ( 3 * 1 + 2 ) – (double)5】
128 【(short)8 + (short)120】
7 【(double)(int)7.2】
9 【(int)((short)9.1)】
5 【(int)((double)(5 / 2 + 3))】
【Java】代入演算とインクリメント・デクリメント演算 練習問題
以下のプログラムは代入演算やインクリメント・デクリメント演算に関するプログラム例です。結果を予想してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
class OperatorTest03{ public static void main(String[] args){ /* 以下の演算がどのような結果になるか予想してください (コンパイルエラーや実行時エラーになる場合もあります) */ //No1 int a1 = 4++; System.out.println(a1++ + ++a1); //No2 int a2 = 5; System.out.println(a2++ + ++a2); //No3 int a3 = 6; System.out.println(++a3 + ++a3 + ++a3); //No4 int a4 = 7; System.out.println(--a4 + --a4 + a4--); //No5 int a5 = 8; System.out.println(8 + a5++ + +8 - --a5); //No6 int a6 = 9; int b6 = 9; System.out.println(++a6 + b6++ + b6++); //No7 int a7 = 4; System.out.println(a7++ + --a7 + a7++ + ++a7 + a7--); //No8 int a8 = 5; System.out.println(--a8 - --a8 + --a8 + --a8 - ++a8 + ++a8); //No9 int a9 = 7; System.out.println(a9 - --a9 - --a9 / ++a9); //No10 int a10 = 9; System.out.println(++a10 * a10 / a10-- + a10-- + a10++); //No11 int a11 = 5 , b11 = 4; System.out.println(a11 += 3 + b11 += 4); //No12 int a12 = 7 , b12 = 5; System.out.println(a12 += (a12 + b12)); //No13 int a13 = 6 , b13 = 4; System.out.println(a13 += a13 + b13); //No14 int a14 = 9 , b14 += 10; System.out.println(a14 + b14); //No15 int a15 = 9 , b15 = ++a15 + 10; System.out.println(a15 + b15); //No16 int a16 = 3 , b16 = a16++ + ++a16; System.out.println(a16 + b16); //No17 int a17 = 6 , b17 = a17++ + ++a17; System.out.println(a17 += b17); //No18 int a18 = 4 , b18 = (a18 = 7) * a18; System.out.println(a18 + b18); //No19 int a19 = 5 ; System.out.println(a19 + (a19 = 5)); //No20 int a20 = 4 ; System.out.println(a20 += (a20 = 5)); //No21 int a21 = 5 ; System.out.println(a21 += (a21 = a21++ + a21++)); } } |
No1
結果【4++の部分でコンパイルエラー】
int a1 = 4++;
System.out.println(a1++ + ++a1);
結果【4++の部分でコンパイルエラー】
int a1 = 4++;
System.out.println(a1++ + ++a1);
No2
結果【12】
int a2 = 5;
System.out.println(a2++ + ++a2);
結果【12】
int a2 = 5;
System.out.println(a2++ + ++a2);
No3
結果【24】
int a3 = 6;
System.out.println(++a3 + ++a3 + ++a3);
結果【24】
int a3 = 6;
System.out.println(++a3 + ++a3 + ++a3);
No4
結果【16】
int a4 = 7;
System.out.println(–a4 + –a4 + a4–);
結果【16】
int a4 = 7;
System.out.println(–a4 + –a4 + a4–);
No5
結果【16】
int a5 = 8;
System.out.println(8 + a5++ + +8 – –a5);
結果【16】
int a5 = 8;
System.out.println(8 + a5++ + +8 – –a5);
No6
結果【29】
int a6 = 9; int b6 = 9;
System.out.println(++a6 + b6++ + b6++);
結果【29】
int a6 = 9; int b6 = 9;
System.out.println(++a6 + b6++ + b6++);
No7
結果【24】
int a7 = 4;
System.out.println(a7++ + –a7 + a7++ + ++a7 + a7–);
結果【24】
int a7 = 4;
System.out.println(a7++ + –a7 + a7++ + ++a7 + a7–);
No8
結果【5】
int a8 = 5;
System.out.println(–a8 – –a8 + –a8 + –a8 – ++a8 + ++a8);
結果【5】
int a8 = 5;
System.out.println(–a8 – –a8 + –a8 + –a8 – ++a8 + ++a8);
No9
結果【1】
int a9 = 7;
System.out.println(a9 – –a9 – –a9 / ++a9);
結果【1】
int a9 = 7;
System.out.println(a9 – –a9 – –a9 / ++a9);
No10
結果【27】
int a10 = 9;
System.out.println(++a10 * a10 / a10– + a10– + a10++);
結果【27】
int a10 = 9;
System.out.println(++a10 * a10 / a10– + a10– + a10++);
No11
結果【a11 += 3 + b11 += 4の部分でコンパイルエラー】
int a11 = 5 , b11 = 4;
System.out.println(a11 += 3 + b11 += 4);
結果【a11 += 3 + b11 += 4の部分でコンパイルエラー】
int a11 = 5 , b11 = 4;
System.out.println(a11 += 3 + b11 += 4);
No12
結果【19】
int a12 = 7 , b12 = 5;
System.out.println(a12 += (a12 + b12));
結果【19】
int a12 = 7 , b12 = 5;
System.out.println(a12 += (a12 + b12));
No13
結果【16】
int a13 = 6 , b13 = 4;
System.out.println(a13 += a13 + b13);
結果【16】
int a13 = 6 , b13 = 4;
System.out.println(a13 += a13 + b13);
No14
結果【b14 += 10の部分でコンパイルエラー】
int a14 = 9 , b14 += 10;
System.out.println(a14 + b14);
結果【b14 += 10の部分でコンパイルエラー】
int a14 = 9 , b14 += 10;
System.out.println(a14 + b14);
No15
結果【30】
int a15 = 9 , b15 = ++a15 + 10;
System.out.println(a15 + b15);
結果【30】
int a15 = 9 , b15 = ++a15 + 10;
System.out.println(a15 + b15);
No16
結果【13】
int a16 = 3 , b16 = a16++ + ++a16;
System.out.println(a16 + b16);
結果【13】
int a16 = 3 , b16 = a16++ + ++a16;
System.out.println(a16 + b16);
No17
結果【22】
int a17 = 6 , b17 = a17++ + ++a17;
System.out.println(a17 += b17);
結果【22】
int a17 = 6 , b17 = a17++ + ++a17;
System.out.println(a17 += b17);
No18
結果【56】
int a18 = 4 , b18 = (a18 = 7) * a18;
System.out.println(a18 + b18);
結果【56】
int a18 = 4 , b18 = (a18 = 7) * a18;
System.out.println(a18 + b18);
No19
結果【10】
int a19 = 5 ;
System.out.println(a19 + (a19 = 5));
結果【10】
int a19 = 5 ;
System.out.println(a19 + (a19 = 5));
No20
結果【9】
int a20 = 4 ;
System.out.println(a20 += (a20 = 5));
結果【9】
int a20 = 4 ;
System.out.println(a20 += (a20 = 5));
No21
結果【16】
int a21 = 5 ;
System.out.println(a21 += (a21 = a21++ + a21++));
結果【16】
int a21 = 5 ;
System.out.println(a21 += (a21 = a21++ + a21++));