Javaプログラミング練習問題(演算子 Part1)

Java

こんにちは。ECF Tech ブログ担当 Michiharu.Tです。

Javaプログラミング向け練習問題、今回のテーマは「演算子」です。 コンピュータの得意技、計算を使いこなしましょう!ということで、演算子の基本的な使い方を確認できる問題をご用意しました。

一般的な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 = 8b = 5なら文字列85になってしまいます。()を使って、8+5を先にやってもらうようにする必要があります。

Q006

問題

次の1~9に基づいて、プログラムを記述してください。

  1. 変数aを宣言し、7+6の結果を代入
  2. 変数bを宣言し、15-4の結果を代入
  3. aとbの値を実行結果のように表示
  4. ++を用いて、aを1加算
  5. --を用いて、bを1減算
  6. aとbの値を実行結果のように表示
  7. %=を用いて、aを3で割った余りをaに代入
  8. *=を用いて、bに5をかけた値をbに代入
  9. 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ではビット演算・シフト演算、論理演算といった演算子もあります。今回の問題が簡単だったという方は、ぜひチャレンジ試してみてください。ひきつづき単元ごとに問題を徐々に増やしていきたいと思っていますので、よろしければぜひご活用ください。

合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。

https://edu.e3factory.com/

タイトルとURLをコピーしました