こんにちは。ECF Tech ブログ担当 Michiharu.Tです。
Javaプログラミング向け練習問題、今回のテーマは「演算子」です。 コンピュータの得意技、計算を使いこなしましょう!ということで、演算子の基本的な使い方を確認できる問題をご用意しました。
一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。
Javaのトピックスです。主に初心者向けにプログラミング学習ネタを提供していきます。
解説動画
2022/12/29 解説動画を掲載しました。
問題編
Q001
問題
提供コード中の①~④を下の仕様に基づいて書き換え、実行結果を得てください。
(仕様)
- ①4×3の計算結果を表示する記述をします。
- ②15を4で割った余りを表示する記述をします。
- ③変数aに7を加算した結果を表示する記述をします。
- ④変数aに4加算する記述をします。
提供コード
public class Quiz001 { public static void main(String[] args) { int a = 5; System.out.println(①); System.out.println(②); System.out.println(③); ④; System.out.println(a); } }
実行結果
12 3 12 9
public class Quiz001 { public static void main(String[] args) { int a = 5; System.out.println(4 * 3); System.out.println(15 % 4); System.out.println(a + 7); a = a + 4; System.out.println(a); } }
解説
計算式は式の右辺に書くことも、printlnの()内に書くこともできます。
Q002
問題
下の内容に基づいてプログラムを修正し、実行結果を得てください。
- 提供コードの4行目を5+8の計算から行なうようにしてください。
- 提供コードの①②を下の仕様に基づいて記述してください。
① インクリメント演算子を用いてaを1加算してください。
② デクリメント演算子を用いてaを1減算してください。
提供コード
public class Quiz002 { public static void main(String[] args) { int a = 10; System.out.println(5 + 8 * 3); ①; System.out.println(a); ②; System.out.println(a); } }
実行結果
39 11 10
public class Quiz002 { public static void main(String[] args) { int a = 10; System.out.println((5 + 8) * 3); a++; System.out.println(a); a--; System.out.println(a); } }
解説
()
を用いることで、計算の優先順位を変更することができます。
Q003
問題
提供コードの①~④を下の仕様に基づいて記述し、実行結果を得てください。
- ① 5×3を計算する式を記述します。
- ② 10÷3を計算する式を記述します。整数として計算します。
- ③ 10÷3を計算する式を記述します。小数点として計算します。
- ④ 変数aとbをかけ算する式を記述します。
提供コード
public class Quiz003 { public static void main(String[] args) { int a = ①; int b = ②; double c = ③; int d = ④; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } }
実行結果
15 3 3.3333333333333335 45
public class Quiz003 { public static void main(String[] args) { int a = 5 * 3; int b = 10 / 3; double c = 10.0 / 3.0; int d = a * b; System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } }
解説
- 整数どおしで計算を行なった場合、計算結果は
int
とみなされるため、小数点以下は切り捨てられてしまいます。 - 小数点以下も計算結果として表示したい場合は、
10.0
のように式に用いる値を小数点で表記しなければなりません。
Q004
問題
提供コードの①②を下の仕様に基づいて記述し、実行結果を得てください。
- ① 演算子
+=
を用いて、aに3加算してください。 - ② 演算子
-=
を用いて、bから4減算してください。
提供コード
public class Quiz004 { public static void main(String[] args) { int a = 5; int b = 8; ①; System.out.println(a); ②; System.out.println(b); } }
実行結果
8 4
public class Quiz004 { public static void main(String[] args) { int a = 5; int b = 8; a += 3; System.out.println(a); b -= 4; System.out.println(b); } }
解説
+=
や-=
などの記号を使うと、足し算と代入を同時に行なうことができます。左辺は変数でなければいけません。
Q005
問題
提供コードの①②を下の仕様に基づいて記述し、実行結果を得てください。
- ① aとbの値を実行結果のように表示します。
- ② aとbの加算結果を実行結果のように表示します。
提供コード
public class Quiz005 { public static void main(String[] args) { int a = 8; int b = 5; System.out.println(①); System.out.println(②); } }
実行結果
a = 8,b = 5 a + b = 13
public class Quiz005 { public static void main(String[] args) { int a = 8; int b = 5; System.out.println("a = " + a + ",b = " + b); System.out.println("a + b = " + (a + b)); } }
解説
+
で文字列を結合する場合、"文字列" + a + b
とすると、すべて文字としてくっついてしまいます。
a = 8
でb = 5
なら文字列85
になってしまいます。()
を使って、8+5
を先にやってもらうようにする必要があります。
Q006
問題
次の1~9に基づいて、プログラムを記述してください。
- 変数aを宣言し、7+6の結果を代入
- 変数bを宣言し、15-4の結果を代入
- aとbの値を実行結果のように表示
++
を用いて、aを1加算--
を用いて、bを1減算- aとbの値を実行結果のように表示
%=
を用いて、aを3で割った余りをaに代入*=
を用いて、bに5をかけた値をbに代入- aとbの値を実行結果のように表示
提供コード
public class Quiz006 { public static void main(String[] args) { //ここから処理を書いていきます } }
実行結果
a = 13,b = 11 a = 14,b = 10 a = 2,b = 50
public class Quiz006 { public static void main(String[] args) { int a = 7 + 6; int b = 15 - 4; System.out.println("a = " + a + ",b = " + b); a++; b--; System.out.println("a = " + a + ",b = " + b); a %= 3; b *= 5; System.out.println("a = " + a + ",b = " + b); } }
Q007
問題
実行結果をヒントに、提供コード中の①~④の部分に適切な演算子を埋めてください。
提供コード
public class Quiz007{ public static void main(String[] args){ int a = 5; int b = 10; a = a ① 3; System.out.println("a = " + a); b ② 2; System.out.println("b = " + b); b ③ ④a; System.out.println("a = " + a); System.out.println("b = " + b); } }
実行結果
a = 8 b = 20 a = 9 b = 29
public class Quiz007{ public static void main(String[] args){ int a = 5; int b = 10; a = a + 3; System.out.println("a = " + a); b *= 2; System.out.println("b = " + b); b += ++a; System.out.println("a = " + a); System.out.println("b = " + b); } }
解説
12行目では、代入の前にaを1加算する処理が必要です。変数bにaが加算される前にaを1加算しなければいけないため、演算子`++`は変数aの前に置きます。
おわりに
いかがでしたでしょうか。今回は基本的な演算子のみをトピックしています。他にもJavaではビット演算・シフト演算、論理演算といった演算子もあります。今回の問題が簡単だったという方は、ぜひチャレンジ試してみてください。ひきつづき単元ごとに問題を徐々に増やしていきたいと思っていますので、よろしければぜひご活用ください。[PR]
Javaをもっと詳しく学びたい!という方には、下の書籍がおススメです!筆者も愛用しています。