[ Java練習問題 ] 練習問題 第4回 『繰り返し処理 ②』

目次

for 文とネストの条件分岐の組み合わせ

Java練習問題 第4回では「繰り返し処理」についての問題を用意してあります。
「繰り返し処理」の解説はこちら

問題 7 難易度 ★★

String white =”□”;
String black = “■”;

① 上記二つの変数を用いて、ヨコ縞模様を出力してください。

実行例

表示したいヨコ縞模様の一辺の大きさを入力してください。
8
■■■■■■■■
□□□□□□□□
■■■■■■■■
□□□□□□□□
■■■■■■■■
□□□□□□□□
■■■■■■■■
□□□□□□□□

問題 7 解答

正解は、、、
public class Main_0307 {
  public static void main(String[] args) {
  String white = "";
  String black = "";
  System.out.println("表示したいヨコ縞模様の一辺の大きさを入力してください。");
  int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 0; i < n; i++) { // n 行分の繰り返し
      for (int j = 0; j < n; j++) { // n 列分の繰り返し
        if (i % 2 == 0) { // 偶数行と奇数行で分岐処理
          System.out.print(black);
        } else {
          System.out.print(white);
        }
      }
      System.out.println();
    }
  }
}

問題 8 難易度 ★★

String white =”□”;
String black = “■”;

① 上記二つの変数を用いて、タテ縞模様を出力してください。

実行例

表示したいタテ縞模様の一辺の大きさを入力してください。
8
■□■□■□■□
■□■□■□■□
■□■□■□■□
■□■□■□■□
■□■□■□■□
■□■□■□■□
■□■□■□■□
■□■□■□■□

問題 8 解答

正解は、、、
public class Main_0308 {
  public static void main(String[] args) {
    String white = "";
    String black = "";
    System.o  ut.println("表示したいタテ縞模様の一辺の大きさを入力してください。");
    int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 0; i < n; i++) { // n 行分の繰り返し
      for (int j = 0; j < n; j++) { // n 列分の繰り返し
        if (j % 2 == 0) { // 偶数列と奇数列で分岐処理
        System.out.print(black);
      } else {
        System.out.print(white);
      }
    }
    System.out.println();
    }
  }
}

問題 9 難易度 ★★★

String white = “□”;
String black = “■”;

① 上記二つの変数を用いて、チェック模様を出力してください。

実行例

表示したいチェック模様の一辺の大きさを入力してください。
8
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□

問題 9 解答

正解は、、、
public class Main_0309 {
  public static void main(String[] args) {
    String white = "";
    String black = "";
    System.out.println("表示したいチェック模様の一辺の大きさを入力してください。");
    int n = new java.util.Scanner(System.in).nextInt();
    for (int i = 0; i < n; i++) { // n 行分の繰り返し
      for (int j = 0; j < n; j++) { // n 列分の繰り返し
        if (i % 2 == j % 2) { // 行と列がどちらも奇数,またはどちらも偶数の場合は黒を出力
        System.out.print(black);
        } else {
      System.out.print(white);
      }
    }
    System.out.println();
    }
  }
}

for 文のネスト応用

問題 10 難易度 ★★★

① 掛け算九九表を「罫線付き」で出力するプログラムを作成してください。

実行例

+—-+—-+—-+—-+—-+—-+—-+—-+—-+
| 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 |
+—-+—-+—-+—-+—-+—-+—-+—-+—-+

問題 10 解答

正解は、、、
public class Main_0310 {
  public static void main(String[] args) {
    for (int i = 1; i <= 9; i++) {
      for (int j = 0; j < 9; j++) {
        System.out.print("+----"); //横罫線
      }
      System.out.println("+");
      for (int j = 1; j <= 9; j++) {
        int num = i * j;
        System.out.print("| "); //縦罫線
        if (num < 10) {
          System.out.print(" "); //表示数値が 10 未満の場合は桁揃え
        }
        System.out.print(num + " ");
      }
      System.out.println("|"); //右端の縦罫線
    }
    for (int j = 0; j < 9; j++) {
      System.out.print("+----"); //下端の横罫線
    }
    System.out.println("+");
  }
}

問題 11 難易度 ★★★

① for 文の入れ子を用いて以下のような出力をしてください。

実行例

0 = 0
0+1 = 1
0+1+2 = 3
0+1+2+3 = 6
0+1+2+3+4 = 10
0+1+2+3+4+5 = 15
0+1+2+3+4+5+6 = 21
0+1+2+3+4+5+6+7 = 28
0+1+2+3+4+5+6+7+8 = 36
0+1+2+3+4+5+6+7+8+9 = 45
0+1+2+3+4+5+6+7+8+9+10 = 55

問題 11 解答

正解は、、、
public class Main_0311 {
  public static void main(String[] args) {
    for (int i = 0; i <= 10; i++) {
      int sum = 0;
      for (int j = 0; j <= i; j++) {
        System.out.print(j);
        if (i != j) {
          System.out.print("+");
        }
        sum += j;
      }
      System.out.println(" = " + sum);
    }
  }
}

for 文のネスト応用 (番外編)

問題 12 難易度 ★★★

① for 文の入れ子を用いて以下のような出力をしてください。

実行例

0 = 0
0+1 = 1
0+1+2 = 3
0+1+2+3 = 6
0+1+2+3+4 = 10
0+1+2+3+4+5 = 15
0+1+2+3+4+5+6 = 21
0+1+2+3+4+5+6+7 = 28
0+1+2+3+4+5+6+7+8 = 36
0+1+2+3+4+5+6+7+8+9 = 45
0+1+2+3+4+5+6+7+8+9+10 = 55

問題 12 解答

正解は、、、
public class Main_0312 {
  public static void main(String[] args) {
    String msg = "0";
    int sum = 0;
    for (int i = 0; i <= 10; i++) {
      System.out.println(msg + " = " + sum);
      msg += "+" + (i + 1);
      sum += (i + 1);
    }
  }
}

Java練習問題 第5回でも引き続き「繰り返し処理」から出題します。

(Visited 221 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次