0

//基本的に、このプログラムでは、ユーザーに終了値と一連の数値を要求する必要があります。着信番号を入力すると、プログラムは終了します。次に、入力した数値の最大値と最小値を出力しますが、終了値は出力しません。ループが 2 回しかないため、for ステートメントのヘルプを探しています。IOだけお願いします。

public class smalllargest {     
    public static void main(String[] args) {
        System.out.println("Enter any number, then re-enter that number when you wish to be done.");
        int t = IO.readInt();
        System.out.println("Enter your set of numbers");
        int s = IO.readInt();
        int max = s;
        int min = s;
        for(int i = 0; i!=t; i++) {
            int n = IO.readInt();
            if(n > max) {
                max = n ;
            }
            if(n< max) {
                min = n;
            }
            if(n == t){
                break;
            }
            System.out.println("max:");
            IO.outputIntAnswer(max);
            System.out.println("min:");
            IO.outputIntAnswer(min);
        }       
    }
}
4

3 に答える 3

0

for の代わりに while ループを使用するのはどうでしょうか。

while(s!=t) {
 s = IO.readInt();
...
}
于 2012-10-19T00:14:39.850 に答える
0

あなたのループは

while (s !=t ) 

println はループの後に来るはずです。

于 2012-10-19T00:15:20.920 に答える
0

このコードで見たように、最初に挿入された数値は終了値として使用されていません。

for(int i = 0; i!=t; i++)

終了する前に t 回実行します。

for ループを使用する代わりに t を終了値にしたい場合は、while を使用できます。

Java の専門家ではありませんが、次のようなものです。

int t = IO.readInt();    
int s = t + 1; // just to be sure s != t
int min = 999999999;
int max = 0;
System.out.println("Enter your set of numbers");
while (s != t) {
  int s = IO.readInt();
  if (s != t) { // to exclude t from the output
    if (min > s) min = s;
    if (max < s) max = s;
  }
}

System.out.println("max: ");
IO.outputIntAnswer(max);
System.out.println("Min: ");
IO.outputIntAnswer(min);

繰り返しますが、私は Java プログラマーではないので、私のコードに構文エラーがないかチェックしてください。

于 2012-10-19T00:15:39.797 に答える