2015-10-22 3 views
-9

Я в тупике, пытаясь понять, как сравнить два числа, чтобы определить, какой из них больше, а какой меньше, используя инструкции if/else.Сравнение двух чисел с использованием операторов if/else

Как он стоит, когда я компилирую мой код, я получаю эту ошибку:

method setNums in class NumberCompare cannot be given to applied types; required: no arguments, found:int,int; reason:actual and formal argument lists differ in length

Я уверен, что мой класс не сделано хорошо. Итак, вот что я сейчас имею.

NumberCompare класс:

import static java.lang.System.*; 

public class NumberCompare 
{ 
    private int numberA, numberB; 
    public NumberCompare(int a, int b) 
    { 
     numberA=a; 
     numberB=b; 
    } 
    public void setNums() 
    { 
     numberA = 45; 
     numberB = 45; 
    } 
    public int getLargest() 
    { 
     if(numberA > numberB) 
      System.out.println(+numberA+" is greater than " +numberB); 
     return numberA; 
    } 
    public int getSmallest() 
    { 
     if(numberA < numberB) 
      System.out.println(+numberB+" is less than " +numberA); 
     return numberB; 
    } 
} 

А класс бегун:

import static java.lang.System.*; 
public class NumberCompareRunner 
{ 
    public static void main(String args[]) 
    { 
     NumberCompare test = new NumberCompare(5,6); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
     test.setNums(45,45); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
     test.setNums(-25,10324); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
    } 
} 

Так короче мой вопрос заключается в том, что я не могу получить два числа, чтобы сравнить друг с другом. Спасибо за любую помощь. Я также глубоко извиняюсь за свою незрелую предыдущую публикацию этого вопроса.

+1

положить усилие в сообщая нам, что проблема есть, и мы постараемся помочь. – Siddhartha

+0

Whaaaaaaaaaaat - это проблема или ошибка, которые у вас есть? –

ответ

2

Ваш метод, чтобы установить число, как определено:

public void setNums() 
{ 
    numberA = 45; 
    numberB = 45; 
} 

Не позволяет пользователю задавать новые.

Изменение подписи, чтобы новые номера, чтобы установить от пользователя:

public void setNums (int a, int b) 
{ 
    numberA = a; 
    numberB = b; 
} 
0

Вы должны cηαnge свой класс NumberCompare следующим образом:

import static java.lang.System.*; 

public class NumberCompare 
{ 
    // Rest of the code here 
    public void setNums (int a, int b){ 
     numberA = a; 
     numberB = b; 
    } 
    public int getLargest(){ 
     if(numberA > numberB){ 
      System.out.println(+numberA+" is greater than " +numberB); 
      return numberA; 
     } 
     else{ 
      System.out.println(+nuberB+" is greater than " +numberA); 
      return numberA; 
     } 
    } 
    public int getSmallest() 
    { 
     if(numberA < numberB){ 
      System.out.println(+numberA+" is less than " +numberB); 
      return numberA; 
     } 
     else{ 
      System.out.println(+numberB+" is less than " +numberA); 
      return numberB; 
     } 
    } 
} 

Проблема у вас было связано с setNums метод, не принимающий правильные аргументы. Также я не мог не заметить неправильную реализацию остальных методов, поэтому я также предлагаю решение для этих целей. Это потому, что в вашем исходном коде вы только проверяли, был ли A меньше или больше B, и вы вернули A независимо от того, как это было не в блоке кода для оператора if. Добавление инструкции else к каждому, если и обрабатывать случай, когда B является вашим результатом, достаточно просто.

0

Удалить метод setnums и создать новый объект каждый раз:

import static java.lang.System.*; 

public class NumberCompare 
{ 
    private int numberA, numberB; 
    public NumberCompare(int a, int b) 
    { 
     numberA=a; 
     numberB=b; 
    } 
    public int getLargest() 
    { 
     if(numberA > numberB) 
      System.out.println(+numberA+" is greater than " +numberB); 
     return numberA; 
    } 
    public int getSmallest() 
    { 
     if(numberA < numberB) 
      System.out.println(+numberB+" is less than " +numberA); 
     return numberB; 
    } 
} 

Используйте это так:

import static java.lang.System.*; 
public class NumberCompareRunner 
{ 
    public static void main(String args[]) 
    { 
     NumberCompare test = new NumberCompare(5,6); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
     test = new NumberCompare(45,45); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
     test = new NumberCompare(-25,10324); 
     out.println(test); 
     out.println("largest == " + test.getLargest()); 
     out.println("smallest == " + test.getSmallest()+"\n\n"); 
    } 
} 
Смежные вопросы