• 締切済み

0~9まで入力させ、前に入力された値と比較する

以下のようなJavaプログラムを作りたいですが、どこから着手するかわからない、教えていただきませんか ・0~9まで野数値を入力されて、0~9以外の場合は「不可」  なお、初回は「比較できない」と表示 ・前に入力された数値より大きい時「大」、小さいとき「小」と表示する ・大が3回二逹するか10回入力したら終了し、入力された値をカンマ区切り1行表示します。

みんなの回答

回答No.2

Java 初めて書きました。 A.java: import java.util.*; public class A {  private final static Integer trial = 10;  private final static Integer success = 3;  public static void main(String args[]) {   ArrayList<Integer> result = new ArrayList<Integer>();   Scanner in = new Scanner(System.in);   Integer cur = -1;   Integer prev = -1;   Integer larger = 0;   while (result.size() < trial) {    while (true) {     try { cur = new Integer(in.next()); break; }     catch (Exception e) { System.err.println("ignore"); }    }    if (cur > 9 || cur < 0) { System.err.println("ignore"); continue; }    result.add(cur);    if (result.size() == 1) {     System.out.println("first"); prev = cur; continue;    } else if (cur > prev) {     System.out.println("large"); if (++larger >= success) { break; }    } else {     System.out.println("small or equal");    }    prev = cur;   }   System.out.println(result);  } }

すると、全ての回答が全文表示されます。
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

プログラミングの作法というのはいっぱいあって、どれが正解、というわけではありませんが。 一例として。 まず。全体の流れを考えます。 そこに書いてある通りではあるのですが、もうちょっと、プログラムにしやすいように考えます。 1)数値入力 2) 大か小の出力 3) 大の数が3以上なら終了 4) 全体の数が10になったら終了 5) 1)へ戻る 次に、上のをプログラムにするなら、どんな風になるかを考えます。 この場合、 1~4 をループするような構造だとわかります。 ここで、直ぐにプログラムにならない場合は、その処理を「一つのプログラム」と考えて、最初の手順から繰り返します。 1) 数値入力 がわからなくても 1-1) 文字列を入力する 1-2)文字列を数値に変換する これだと、それぞれのやり方わかるはずです。 この作業中に、「覚えておかなければならないもの」を明確にしておきます。 それは、プログラムにしたときに「変数」として記憶場所を用意しなければならないものだからです。 どんな形式がいいかも考えます。 「入力された値をカンマ区切り1行表示」しなければならないのだから、入力した数値の履歴を残す必要があります。 複数の数値をまとめて残す、と考えると、配列やリストが最適だと考えられます。 こうして分解したものを、設計図に従ってまとめていきます。

すると、全ての回答が全文表示されます。

関連するQ&A