从return()打印2个值而不添加

时间:2018-10-31 17:51:31

标签: java return-value

我正在执行的数学程序的此项有一个小问题。 我的主机上有此代码。

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而不是显示num10num11

有没有办法像这样打印结果

Descending order: num10 num11

例如我输入10和20。它应该返回:

Descending order: 20 10

相反,它显示:

Descending order: 30

3 个答案:

答案 0 :(得分:1)

您要打印字符串而不是数字,因此将decorder()更改为此:

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

答案 1 :(得分:1)

您可以创建一个包含两个值的数组:

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]

答案 2 :(得分:0)

此致

您对数字求和,有很多方法可以做到这一点,例如:

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));