0

しばらく何かに取り組んでいると思っていましたが、結果の行が無限に印刷されるという問題がありました。今、私はそれをまったく機能させることができません。このコードスタイルを、私の述べた目標のために機能的なものに変える方法を知っている人はいますか?

import java.util.Scanner;
public class Numerical
{
   public static void main (String  [ ] args   )
   {
   Scanner scan = new Scanner (System.in);
   System.out.println("Please enter 5 numbers one after another");
   {
   int a = scan.nextInt ( ); // First number input by user
   int b = scan.nextInt ( ); // Second number input by user
   int c = scan.nextInt ( ); // Third number input by user
   int d = scan.nextInt ( ); // Fourth number input by user
   int e = scan.nextInt ( ); // Fifth number input by user
      // Check if a is the greatest number
      if   (a > b);
      while(a > c);
      while(a > d);
      while(a > e);
      System.out.println ("The highest number is " +a);
        // Check if b is the greatest number
      else if   (b > a);
      while(b > c);
      while(b > d);
      while(b > e);
      System.out.println ("The highest number is " +b);

            // Check if c is the greatest number
      else if(c > a);
      while(c > b);
      while(c > d);
      while(c > e);
      System.out.println ("The highest number is " +c);
              // Check if d is the greatest number
      else if(d > a);
      while(d > b);
      while(d > c);
      while(d > e);
      System.out.println ("The highest number is " +d);
                   // Check if e is the greatest number
      else if(e > a);
      while(e > b);
      while(e > c);
      while(e > d);
      System.out.println ("The highest number is " +e);
      }
}

}
4

3 に答える 3

1

そのすべてを行う必要はありません。配列への入力を読み取ります*、を使用しますArrays#sort。最初の要素が最小で、最後の要素が大きくなります。

私はあなたのコードを理解していません.それらwhileifステートメントは何ですか? 基本的なチュートリアルを実行して、物事がどのように機能するかをよりよく理解することをお勧めします. 行き詰まった場合、コードをデバッグするのに勝るものはありません。問題を見つけるだけでなく、なぜそれが発生したのかを理解することができます。

*ArrayList入力の長さが分からない場合に使用したい場合があります

于 2014-02-05T08:55:28.060 に答える
0

最良の方法は、配列を使用して並べ替えメソッドを実装することです。ただし、この例の方が理解しやすいでしょう。各数値を、ユーザーが入力した現在の最大数値と単純に比較しています。

import java.util.Scanner;

public class Blahh
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        int largest = 0;

        int a = scan.nextInt(); // First number input by user
        int b = scan.nextInt();
        largest = largest(a, b);

        int c = scan.nextInt();
        largest = largest(largest, c);

        int d = scan.nextInt();
        largest = largest(largest, d);

        int e = scan.nextInt();

        System.out.println("The largest number is: " + largest(largest, e));
    }

    public static int largest(int num1, int num2)
    {
        if (num1 > num2)
            return num1;
        else
            return num2;
    }
}
于 2014-02-05T09:11:45.540 に答える