2016-11-22 16 views
-4

私はこの課題を持っています..私のプログラムがうまくいくように問題を解決する方法はわかりません。私はこれを修正する方法がわかりません

import java.util.Scanner; 
public class Work6{ 

    public static void main (String[] args){ 
     String x; 
     String y; 
     Scanner in = new Scanner(System.in); 
     System.out.println("Number 1: "); 
     x = in.nextLine(); 
     System.out.println("Number 2: "); 
     y = in.nextLine(); 

    if (x > y){ 
      System.out.println("Bigger number: " + x); 

     } 
     else if (y > x){ 
      System.out.println("Bigger number: " + y); 
     } 
    } 

} 

基本的には、2つの数字を求めて、どちらが大きいのかを教えてくれるプログラムを書く必要があります。私は何が間違っているのか教えてください。あなたがする必要がどのような

おかげで、エヴァ

+4

あなたは 'String'を比較しますが、ここでは' int'を比較してください。 – SomeJavaGuy

+2

Do 'int x; 'String xの代わりにint y'を指定します。文字列y; 'と' in.nextLine() 'の代わりに' 'Integer.parseInt(in.nextLine())'を実行します。 – Gendarme

+0

実際には、コードはそれぞれのエラーメッセージでコンパイルされないことが実際に分かります。 –

答えて

0

変更xとy:

import java.util.Scanner; 
public class Work6{ 

    public static void main (String[] args){ 
    int x; 
    int y; 
    Scanner in = new Scanner(System.in); 
    System.out.println("Number 1: "); 
    x = in.nextInt(); 
    in.nextLine(); 
    System.out.println("Number 2: "); 
    y = in.nextInt(); 
    in.nextLine(); 

if (x > y){ 
     System.out.println("Bigger number: " + x);` 

    } 
    else if (y > x){ 
     System.out.println("Bigger number: " + y); 
    } 
} 

} 
0

あなたは文字列をスキャンすると、あなたが大きくなっている1を参照し、そのメモリ位置を比較...

は数字ではない文字列をスキャンすること、である、とそれは動作します:

import java.util.Scanner; 
public class Work6{ 

    public static void main (String[] args){ 
    int x; 
    int y; 
    Scanner in = new Scanner(System.in); 
    System.out.println("Number 1: "); 
    x = in.nextInt(); 
    System.out.println("Number 2: "); 
    y = in.nextInt(); 

if (x > y){ 
     System.out.println("Bigger number: " + x);` 

    } 
    else if (y > x){ 
     System.out.println("Bigger number: " + y); 
    } 
} 

} 

プリミティブとオブジェクトとそれらを比較する方法の詳細を読む必要があります。

EDIT

また、短くすることができる。

public static void main (String[] args){ 
     int x; 
     Integer y; 
     Scanner in = new Scanner(System.in); 
     System.out.println("Number 1: "); 
     x = in.nextInt(); 
     System.out.println("Number 2: "); 
     y = in.nextInt(); 
     System.out.println(x > y ? "Bigger number: " + x : 
       x == y ? "They are equal" : "Bigger number: " + y); 
     } 

はEDIT 2:

したい場合は、まだ文字列を使用できますが、外の整数を作成する必要がありますそれ:

 String x; 
     String y; 
     Scanner in = new Scanner(System.in); 
     System.out.println("Number 1: "); 
     x = in.nextLine(); 
     System.out.println("Number 2: "); 
     y = in.nextLine(); 
     int xInt = new Integer(x); 
     int yInt = new Integer(y); 
     System.out.println(xInt > yInt ? "Bigger number: " + x : x == y ? "They are equal" : "Bigger number: " + y); 

このコードが何をしているのかは、行を読み込んでからIntegerを作成しようとします。有効な整数でなければ、ここで例外がスローされるので、これに注意してください。また、intへのunboxed、私はそれについてもっと読むことをお勧めします。 intに

0

ただin.nextInt()の代わりin.nextLine()を使用しています。文字列の代わりにintが返されます。