Java 如何编写一个方法,该方法接受int参数0或1,并给出输出1或0

Java 如何编写一个方法,该方法接受int参数0或1,并给出输出1或0,java,logic,Java,Logic,我想写一个方法,它接受int参数0或1,并给出输出1或0。意思是如果我把输入设为0,它应该返回1,如果输入设为1,它应该返回0。但问题是我不能使用if-else,三元运算符或任何集合 方法的行为应如下所示: public int myMethod(int i) { return j; // if i is 0 then j should be 1 and vice versa. } 输入是输入的值 输入是输入的值。这应该可以: 返回Math.absi-1 这应该有效: 返回Math.a

我想写一个方法,它接受int参数0或1,并给出输出1或0。意思是如果我把输入设为0,它应该返回1,如果输入设为1,它应该返回0。但问题是我不能使用if-else,三元运算符或任何集合

方法的行为应如下所示:

public int myMethod(int i)
{
    return j; // if i is 0 then j should be 1 and vice versa.
}
输入是输入的值

输入是输入的值。

这应该可以:

返回Math.absi-1

这应该有效:


返回Math.absi-1

受Saraubh的启发,返回前也要检查输入

public int myMethod(int i)
{
    if (i != 0 && i != 1)
    {
        throw new IllegalArgumentException("Input should be 0 or 1");
    }
    return 1 - i;
}

受到Saraubh的启发,在返回之前也要检查输入

public int myMethod(int i)
{
    if (i != 0 && i != 1)
    {
        throw new IllegalArgumentException("Input should be 0 or 1");
    }
    return 1 - i;
}
这将执行异或操作。如果i=0->返回1,如果i=1返回0。假设输入i是0或1


这将执行异或操作。如果i=0->返回1,如果i=1返回0。假设输入i为0或1…

可能是最简单的解决方案:

public int myMethod(int i)
{
    return 1-i;
}


可能是最简单的解决方案:

public int myMethod(int i)
{
    return 1-i;
}


这个问题很有趣。这里有其他可能的方法:事实上有点不切实际和昂贵,只是为了你的兴趣

public int myMethod(int i)
{
    return (int)Math.asin(Math.cos(i));
}


这个问题很有趣。这里有其他可能的方法:事实上有点不切实际和昂贵,只是为了你的兴趣

public int myMethod(int i)
{
    return (int)Math.asin(Math.cos(i));
}


对于任何其他输入,它应该做什么?没有固定的输入0或1。若输入是0,那个么输出应该是1。如果输入为1,则输出应为0。那么,该方法的输入不是固定的-因此,您需要考虑如果输入不是0或1,您将做什么。没有什么能阻止有人打电话给myMethod2。你可以明确地说结果是未定义的,在这种情况下,结果可以是任何东西,但你至少应该考虑一下。@jon这是一个面试问题,那么在这一点上询问需求是个好主意。对于任何其他输入,它应该做什么?没有固定的输入,无论是0还是1。若输入是0,那个么输出应该是1。如果输入为1,则输出应为0。那么,该方法的输入不是固定的-因此,您需要考虑如果输入不是0或1,您将做什么。没有什么能阻止有人打电话给myMethod2。你可以明确地说结果是未定义的,在这种情况下,结果可以是任何东西,但你至少应该考虑一下。@jon这是一个面试问题,那么在那一点上提出要求是一个好主意。工作正常。非常感谢+1.你的答案。网站限制我接受你的回答。6分钟后我会接受它的工作正常。非常感谢+1.你的答案。网站限制我接受你的回答。我会在6分钟后接受,如果你不能使用,否则;因此第二种解决方案被排除了:你不能使用if和else;因此,第二种解决方案排除了:
public int myMethod(int i)
{
    return ("10").indexOf(i+"");
}
public int myMethod(int i)
    {
        if (i != 0 && i != 1)
        {
            throw new IllegalArgumentException("Input should be 0 or 1");
        }
        return Integer.parseInt(new String(("10").charAt(i)));
    }