Javaプログラミング練習問題(くり返し)

Java

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

Javaプログラミング向け練習問題、テーマは「くり返し」です。二重ループなども出題しております。プログラミング学習にぜひお役立てください。 一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。
Javaプログラミング

Javaのトピックスです。主に初心者向けにプログラミング学習ネタを提供していきます。

解説動画

2023/01/09 解説動画を掲載しました。

問題編

Q001

問題

  • 提供コード中の①~②を埋め、実行結果を得てください。

提供コード

public class Quiz001 {
    public static void main(String[] args) {
        for (int i = 0;①){
            System.out.println(②);
        }
    }
}

実行結果

i = 0です。
i = 1です。
i = 2です。
i = 3です。
i = 4です。
public class Quiz001 {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++){
            System.out.println("i = " + i + "です。");
        }
    }
}

Q002

問題

プログラミング題材として有名なFizzBuzz問題です。
提供コード中のプログラムを下の仕様に基づいて埋め、実行結果を得てください。
(仕様)
1~20までの数値を順に表示します。但し、下の3つの条件のいずれかを満たす場合は数字のかわりにそれぞれの指示通りの表示をします。

  • ① 3の倍数のときは数字の替わりに「Fizz」と表示します。
  • ② 5の倍数のときは数字の替わりに「Buzz」と表示します。
  • ③ 3の倍数かつ5の倍数のときは数字の替わりに「FizzBuzz」と表示します。この条件は①②より優先されます。

提供コード

public class Quiz002{
    public static void main(String[] args) {
        for (int i = 1; i <= 20; i++) {
            //ここにプログラムを書きます
        }
    }
}

実行結果

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
public class Quiz002{
    public static void main(String[] args) {
        for (int i = 1; i <= 20; i++) {
            if (i % 15 == 0) {
                System.out.println("FizzBuzz");
            }
            else if (i % 3 == 0) {
                System.out.println("Fizz");
            }
            else if (i % 5 == 0) {
                System.out.println("Buzz");
            }
            else {
                System.out.println(i);
            }
        }
    }
}

Q003

問題

4の段を表示するプログラムを記述してください。

提供コード

public class Quiz003 {
    public static void main(String[] args) {
        //ここにプログラムを書きます。
    }
}

実行結果

4
8
12
16
20
24
28
32
36
public class Quiz003 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            System.out.println(4*i);
        }
    }
}

Q004

問題

二重ループを使い、かけ算九九を表示するプログラムを記述してください。

提供コード

public class Quiz004 {
    public static void main(String[] args) {
        //ここにプログラムを書きます。
    }
}

実行結果

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
public class Quiz004 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                System.out.print((i * j) + " ");
            }
            System.out.println();
        }
    }
}

Q005

問題

提供コードの①~③を埋め、実行結果を得るプログラムを作成してください。

提供コード

public class Quiz005 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            for (①) {
                System.out.print(②);
            }
            ③
        }
    }
}

実行結果


*
**
***
****
*****
******
*******
********
*********
public class Quiz005 {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

解説

内側のfor文の条件式にiを用いるのがポイントです。

おわりに

いかがでしたでしょうか。プログラムの実行順序が上から下。の前提が崩れるくり返しは初学者の方の最初の挫折ポイントと言えるかもしれません。ひきつづき単元ごとに問題を徐々に増やしていきたいと思っていますので、よろしければぜひご活用ください。

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

ECFエデュケーション
タイトルとURLをコピーしました