Вывести 2 значения из return () без добавления - PullRequest
0 голосов
/ 31 октября 2018

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

case 15:
    DescendingOrder dorder =  new DescendingOrder();
    System.out.println("Insert the first value: ");
    num10 = input.nextDouble();
    System.out.println("Insert the second value: ");
    num11 = input.nextDouble();
    System.out.println("Descending Order: " + dorder.decorder(num10, num11));
    break;

Это код, который я использую в другом классе

public class DescendingOrder
{
    public double decorder (double num10, double num11)
    {
        if (num10 > num11) {
            return(double) num10  + num11;
        } else {
            return(double) num11 + num10;
        }
    }
}

Проблема в том, что программа печатает num10 + num11 вместо отображения num10 и num11.

Есть ли способ напечатать результат как:

Descending order: num10 num11

Ex. Я ввожу 10 и 20. Он должен вернуть:

Descending order: 20 10

Вместо этого он показывает:

Descending order: 30

Ответы [ 3 ]

0 голосов
/ 31 октября 2018

С уважением,

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

public class DescendingOrder {
public String decorder (double num10, double num11){
    if (num10 > num11){
        return num10  + "," + num11;
    }else{
        return num11 + "," + num10;
    }
}       
}

или:

System.out.prinln(num10 > num11 ? (num10 + "," + num11) : (num11 + "," + num10));
0 голосов
/ 31 октября 2018

Вы можете создать массив, содержащий два значения:

public class DescendingOrder {
    public double[] decorder (double num10, double num11){
        if (num10 > num11){
            return new double[] { num10, num11 };
        }else{
            return new double[] {num11, num10 };
        }
    }       
}

А затем позвоните Arrays.toString и передайте возвращаемое значение:

System.out.println("Descending Order: " + Arrays.toString(dorder.decorder(num10, num11)));

И он напечатает что-то вроде:

Descending Order: [2.0, 1.0]
0 голосов
/ 31 октября 2018

Вы хотите напечатать строку, а не число, поэтому измените decorder () следующим образом:

public String decorder (double num10, double num11){
    if (num10 > num11){
        return num10 + " " + num11;
    }else{
        return num11 + " " + num10;
    }
} 
...