-2

私は 12 年生の学校のコースで基本的な Java の作業を行っていますが、このコードで何が間違っているのかを見つけるのに苦労しています。num2 が num1 より大きい場合、出力は問題ありませんが、num1 が num2 より大きい場合、2 つではなく 3 つの出力が得られます。括弧で何か間違ったことをしたかどうかはわかりませんが、Javaを学び始めたばかりで、これの問題がわかりません。

たとえば、num1 が 3 で num2 が 2 の場合、出力として 2 、 3 、2 が得られますが、num1 が 2 で num2 が 3 の場合、出力として 2,3 が得られます。

import java.util.*;

public class HigherNumber
{
    public static void main (String[] args)
    {
        int num1 = 0;
        int num2 = 0;
        Scanner scannum1 = new Scanner (System.in);
        Scanner scannum2 = new Scanner (System.in);

        System.out.print("Enter your first number: ");
        num1 = scannum1.nextInt();
        scannum1.close();

        System.out.print("Enter your second number: ");
        num2 = scannum2.nextInt();
        scannum2.close();

        {
        if (num1 > num2) {
            System.out.println (num2);
            System.out.println (num1);
        }
        else
            System.out.println (num1);
            System.out.println (num2);
        }
    }
}
4

2 に答える 2

4
else      
 System.out.println (num1);
 System.out.println (num2);

左中括弧が必要です:

else {    
    System.out.println (num1);
    System.out.println (num2);
}

全体的なコード (中かっこをどこでも失っているため) は次のようになります。

import java.util.*;

public class HigherNumber{
    public static void main (String[] args){
        int num1 = 0;
        int num2 = 0;
        Scanner scannum1 = new Scanner (System.in);
        Scanner scannum2 = new Scanner (System.in);
        System.out.print("Enter your first number: ");
        num1 = scannum1.nextInt();
        scannum1.close();
        System.out.print("Enter your second number: ");
        num2 = scannum2.nextInt();
        scannum2.close();
        if (num1 > num2) {
            System.out.println (num2);
        System.out.println (num1);
        }
        else{    
            System.out.println (num1);
            System.out.println (num2);
        }
    }
}
于 2013-07-29T01:37:42.967 に答える
0

2 つの異なる Scanner を作成する必要はありません。1 つの Scanner インスタンスを作成し、nextInt() を 2 回呼び出すことができます。このような:

Scanner scannum1 = new Scanner (System.in);
System.out.print("Enter your first number: ");
num1 = scannum1.nextInt();
System.out.print("Enter your second number: ");
num2 = scannum1.nextInt();
scannum1.close();
于 2013-07-29T01:44:28.793 に答える