有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我在做一个数学程序的这个条目时遇到了一个小问题。 我的主机上有这个代码

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) 个答案

  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. # 2 楼答案

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

    public String decorder (double num10, double num11){
        if (num10 > num11){
            return num10 + " " + num11;
        }else{
            return num11 + " " + num10;
        }
    } 
    
  3. # 3 楼答案

    问候,

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

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