-2
int min, max;

Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;

while (val != 0) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();
  if (val < min) {
      min = val;
  }
  if (val > max) {
     max = val;
  }
};
System.out.println("Min: " + min);
System.out.println("Max: " + max);
  }
}

まず第一に、これは重複した質問です。できるだけ早く回答が必要ですが、もう一方の質問は古いため、誰も回答していません。そうは言っても;

私が作成することになっているプログラムは、0が入力されるまで無限の数の値を取り、入力された最小値と最大値を表示することになっています。私が今設定している方法では、最小は常に 0 です。0 を最小の数値として無視し、次に小さい数値を取得する方法を見つける必要があります。何か案は?

4

4 に答える 4

2

これは 1 つの方法です。

while (true) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();

  // stop the loop when 0 is entered (prevent min/max calculations)
  if(val == 0)
     break;

  if (val < min)
     min = val;
  if (val > max)
     max = val;
}
于 2013-10-31T06:27:41.510 に答える
0

変化する:

if (val < min) {
      min = val;
  }

に:

if ((val < min) && (val != 0)) {
      min = val;
  }
于 2013-10-31T06:25:30.890 に答える
0

あなたが言うように、ループ条件にそれを追加するのはどうですか?

while (val != 0) {
    System.out.print("Enter a Value: ");
    val = s.nextInt();
    if (val != 0) {
        if (val < min) {
            min = val;
        }
        if (val > max) {
            max = val;
        }
    } else {
         break;
    }
}
于 2013-10-31T06:25:40.120 に答える
0

以下のように条件を変更する必要があり、動作します。

    if (val < min && val>0) {
            min = val;
        }
于 2013-10-31T06:26:24.817 に答える