演習 No.8 whileループ

whileループwhileループを参照

問題1. 九九の表

次のプログラムはwhileループを使って九九の表を表示するものです。空欄を埋めてプログラムを完成させなさい。

// 九九の表作成(while版)
class Kuku_while {
  public static void main(String args[]){
// 変数宣言
    int A, B, Kuku;
// カウンタの初期値を設定
    A = (1);
    
// 外側のループ
    while(A <= (2)){
// 内側のループのカウンタの初期値を設定
      B = (1);
      while(B <= (2)){
// 九九の計算
        Kuku = (3);
// 計算結果の表示
        System.out.print(" " + (4));
// 内側ループのカウンターを増やす
        (5);
      }
// 改行
      System.out.println();
// 外側ループのカウンターを増やす
      (6);
    }
  }
} 

問題2. 最小値検出

例題5を参考にして最小値を検出するプログラムを作りなさい。

Integer.MAX_VALUEで整数(int型)の最大値を取得できます。次のように使います。

int Min = Integer.MAX_VALUE;

問題3. 数当てゲーム

次のプログラムは数当てゲームです。空欄を埋めて正しく動作するプログラムにしなさい。

乱数(Math.rando())は0から1までの実数値が得られるようになっているので10倍してその値をキャストして整数化しています。

// 数当てゲーム
import java.io.*;
import java.text.*;

class Kazuate {
  public static void main(String args[]){
 // 変数宣言
    int Kotae, InputData, i;
    String s;
    Number Num;
    
    DecimalFormat DF = new DecimalFormat();
    BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));

// 答えの数値を乱数で生成、整数化
    Kotae = ((1))(10 * Math.random());
// 回答回数の初期化
    i = (2);

// メッセージの表示
    System.out.println("数当てゲーム!!");
    System.out.println("0から10までの整数を当ててください");

// 無限ループの開始
    while((3)){
      System.out.print(i + "回目の数値の入力 : ");

// データの入力
      try {
        s = (4);
        Num = DF.parse(s);
        InputData = (5);
      }
      catch (Exception e) { InputData = 0; }

// 正解の判定
      if (InputData (12) Kotae) {
        System.out.println("正解!" + i + "回目で当たりました!");
        break;
      }

// 不正解の判定
      if (InputData (7) Kotae)
        System.out.println("大きすぎます!");
      if (InputData (8) Kotae)
        System.out.println("小さすぎます!");

// 回答回数のインクリメント
      i++;
    }
  }
}

問題4. じゃんけんゲーム

次のプログラムはじゃんけんゲームです。空欄を埋めてプログラムを完成しなさい。

  1. 入力と判定は無限ループの中で行なう
  2. 人間かコンピュータが3回勝ったら終わる(ループを強制終了)。
  3. 入力するデータはグーは0、チョキは1、パーは2とする。それ以外のデータを入力すると人間の負け数が増える。
  4. プログラムの出す手は乱数で作る(乱数の値を3倍し、整数化する)。
// じゃんけんゲーム
import java.io.*;
import java.text.*;

class Janken_game {
  public static void main(String args[]){
// 変数宣言
    int Pj, Hj, K, M, H; // パソコンの手、人間の手、勝ち数、負け数、引き分け数
    String s, Hantei, PC, Hu; // 入力文字列、判定結果、パソコンの手、人間の手
    Number Num;
    DecimalFormat DF = new DecimalFormat();
    BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));

// 開始のメッセージ
    System.out.println("◆◇じゃんけんゲーム◇◆");
    System.out.println("3回勝ったらあなたの勝ち!");
    System.out.println("-------------------------------------");

// 勝敗数記憶変数の初期化
    K = M = H = (1);

// 無限ループの開始
    while((2)){

// 文字列変数を初期化
      Hantei = PC = Hu = "";

// コンピュータの手を乱数で生成
      Pj = (int)((3) * Math.random());

// 入力促進メッセージの表示
      System.out.print("何を出しますか?(グー:0 チョキ:1 パー:2) : ?");

// 人間の手の入力
      try {
        s = (4);
        Num = (5);
        Hj = (7);
      }
      catch (Exception e) { Hj = 3; }

// 人間の手の文字列設定
      switch ((8)) {
        case 0 : Hu = "グー"; break;
        case 1 : Hu = "チョキ"; break;
        case 2 : Hu = "パー"; break;
        default : Hu = "????"; (9); // 負け数を増やす
      }

// コンピュータと人間の手の比較判定
      switch ((10)) {
        case 0 : // コンピュータがグー
          PC = "グー";
          switch ((11)) {
            case 0 : (12) = "引き分け"; H++; break;
            case 1 : (12) = "負け"; M++; break;
            case 2 : (12) = "勝ち!"; K++; break;
          }
          break;
        case 1 : // コンピュータがチョキ
          PC = "チョキ";
          switch (Hj) {
            case 0 : (12) = "勝ち!"; K++; break;
            case 1 : (12) = "引き分け"; H++; break;
            case 2 : (12) = "負け"; M++; break;
          }
          break;
        case 2 : // コンピュータがパー
          PC = "パー";
          switch (Hj) {
            case 0 : (12) = "負け"; M++; break;
            case 1 : (12) = "勝ち!"; K++; break;
            case 2 : (12) = "引き分け"; H++; break;
          }
          break;
        default : PC = "????";
      }

// 勝ち数と負け数の判定。条件を満たせばループを強制終了
      if ((13)) (14);
      System.out.println("結果 : " + Hantei + "\tコンピュータ : " + PC + "\tあなた : " + Hu);
    }

// 結果の表示
    System.out.println("-------------------------------------");
    if ((15)) {
      System.out.println("おめでとう!勝ちました!");
    } (16) {
      System.out.println("残念!負けました!");
    }
    System.out.println("成績:" + (17) + "勝 " + (18) + "負 " + (19) + "引き分け");
  }
}

問題5. 問題作成

各自で繰り返し処理する問題を考え、そのプログラムを作りなさい。

考えた問題はプログラムの先頭部にコメントとして入力しておくこと。