获取函数返回两个整数

时间:2010-09-06 01:10:53

标签: java function integer

我正在写一个函数,我希望它返回两个整数作为结果。但是,我无法做到这一点。有人能帮助我吗?这是我最好的镜头

public static int calc (int s, int b, int c, int d, int g)
    {
        if (s==g)
            return s;
        else if (s+b==g)
                return s && b;

        else if (s + c==g)
                return s && c;

         else if (s+d==g)
                return s && d;

        else
            System.out.println("No Answer");                    
    }

6 个答案:

答案 0 :(得分:11)

您可以让方法返回int

的数组
public static int[] calc (int s, int b, int c, int d, int g)

答案 1 :(得分:5)

制作一个“对”类并将其返回。

public class Pair<T,Y>
{
    public T first;
    public Y second;
    public Pair(T f, Y s)
    {
        first = f;
        second = s;
    }
}

答案 2 :(得分:4)

创建一个有两个整数的小内部类。

private static class TwoNumbers {
    private Integer a;
    private Integer b;

    private TwoNumbers(Integer a, Integer b) {
        this.a = a;
        this.b = b;
    }
}

您可以创建该类的实例并返回该实例。

答案 3 :(得分:2)

对于此特定问题,由于答案始终返回s

....
    return s;
....
    return s && b;
....
    return s && c;
....
    return s && d;
....

你可以返回第二个值。我使用0来表示“只是s”,因为第一种情况(if (s==g))可以被认为是if (s+0==g)。如有必要,请使用与0不同的标记值。

public static int calc (int s, int b, int c, int d, int g)
{
    if (s==g)
        return 0;
    else if (s+b==g)
            return b;
    else if (s+c==g)
            return c;
     else if (s+d==g)
            return d;
    else {
        // System.out.println("No Answer");

        // Probably better to throw or return a sentinel value of
        // some type rather than print to screen.  Which way
        // probably depends on whether "no answer" is a normal
        // possible condition.
        throw new IndexOutOfBoundsException("No Answer");
    }
}

如果没有抛出异常,那么s始终是第一个结果:

try {
    int result1 = s;
    int result2 = calc(s, b, c, d, g);
} catch (IndexOutOfBoundsException ex) {
    System.out.println("No Answer");
}

答案 4 :(得分:0)

Get-Command -Syntax

答案 5 :(得分:-4)

你为什么要这样做?如果你有这样的需要,你不能将你的返回类型更改为字符串,因为在字符串的情况下你可以在两个值之间有分隔符,这将有助于你提取值....比如10&amp; 30,

我同意这是一种错误的解决方法...我认为存在坚持原始数据类型的限制