2016-08-22 8 views
-5

このコードでは、ユーザーが入力する数値の数を求めてから、それぞれの数値を入力します。最後に、最小値を返す必要があります。私はMath.minメソッドについて知っている、私はちょうど以下のロジックが動作しない理由と苦労している、それは常に最後の入力を印刷します。このfor/ifループロジックで何が問題になりますか?

import java.util.Scanner; 

public class Ch5_smallestValue { 

    public static void main(String[] args) { 

     Scanner sc = new Scanner(System.in); 
     System.out.println("Input how many numbers and then input each one"); 
     int hMany = sc.nextInt(); 

     int firstNum = sc.nextInt(); 
     int smallest = firstNum; 

     for (int i = hMany; i > 1; i--){ 

      int input = sc.nextInt(); 
      if (smallest < input){ 
       smallest = input; 
      } 

     } 

     System.out.println("smallest = " + smallest); 

    } 

} 
+8

「最小の入力」条件ではありませんか?手動でコードを実行すると、このような間違いを自分で見つけることができます。 – Codebender

+0

これは 'if'の条件が間違っているためです。上記のコメントを確認してください –

+0

よろしくお願い致します。その混乱は私の頭の中で最も小さい値は小さくなければならない "<"と大きくない(>)他の入力numebrsより:)編集:私は今それを得る:) – ApRax

答えて

-3

(最小>入力)に変更し(最小<入力)。

関連する問題