2016-11-22 4 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); 
     } 
    } 

} 

В основном я должен написать программу, которая запрашивает два числа, а затем сообщает мне, какой из них больше. Можете ли вы просто рассказать мне, что я делаю неправильно?

Спасибо, Ева

+4

вы сравниваете 'String', в то время как вы должны сравнивать' int' здесь. – SomeJavaGuy

+2

Do 'int x; int y' вместо 'String x; String y; 'и вместо' in.nextLine() 'do' Integer.parseInt (in.nextLine()) '. – Gendarme

+0

Я действительно вижу, что код даже не компилируется с соответствующим сообщением об ошибке. –

ответ

0

изменения х и у в целое:

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

Вы сканирование строк, а затем сравнить его ячейки памяти, чтобы увидеть, какой из них больше ...

Что вам нужно сделать, это, чтобы сканировать номера не строки, а он будет работать:

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:

Вы все еще можете использовать строки, если вы хотите, но вы должны создать Integer из его:

 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 из него. Если это не допустимое целое число, исключение будет выбрано здесь, поэтому будьте осторожны с этим. Кроме того, его unboxed для int, я бы порекомендовал вам прочитать об этом больше.

0

Просто используйте in.nextInt() вместо in.nextLine(). Он вернет int вместо строки!

Смежные вопросы