一回も披露したことのない豆知識

コマンドライン引数から複数の値を受け取り、それらの最大と最小を表示する、というプログラムなのですが。

class Maxmin{
  public static void main (String[] args) {

   int max=Integer.MIN_VALUE;
   int min=Integer.MAX_VALUE;

   for (int i=0; i<args.length; i++){
    int num= Integer.parseInt(args[i]);

    if(num>max)
    max=num;
    if(num<min)
    min=num;
   }


   System.out.println("最大値は" + max + "です。");
   System.out.println("最小値は" + min + "です。");

 }
}

このプログラムでも問題なく表示されるのですが、MIN_VALUEとMAX_VALUEを使用せずに表示する事、と指摘を受けました。自分の中でぱっと思いついたのがこれだったのですが、他にはどのような方法があるのでしょうか?

A 回答 (2件)

どうせ配列内で最大/最少値を求めるのだから、配列最初の値を仮に最大/最少値としてから2番目以降と比較・入れ替えすればいいのです。


なお、コマンドライン引数がなかった場合の処理もお忘れなく。何も入力していないのに最大/最少値が表示されるのはおかしいですよね?
    • good
    • 0

引数に整数以外を入力した場合の考慮が足りない


引数が 0 個の場合の考慮が足りない
引数が 1 個の場合の最大最小値は args[0] と同じ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報