如何在不使用条件的情况下创建返回1或0的方法?

2022-09-02 02:04:47

在面试中,我被问到一个问题,如果提供0,则返回1,如果提供1而不使用条件,则返回0,即如果,三元等

只是为了给你和想法下面的代码,没有如果的:

public int testMethod(int value){
    if(value==0) return 1;
    if(value==1) return 0;
    return 0;
}

Java Fiddle

更新:虽然@Usagi的答案似乎最适合我写的代码。但是重新考虑这个问题,我重新分析了答案。@Sergio的答案似乎是最简单和最适合的。


答案 1

如果你只得到0和1,那么这可能更简单:

return 1 - value;


答案 2
public int testMethod(int value) {
  return 1 - (value % 2); // or 1 - (value & 1)
}

这可用于在任何值和 0 之间切换,EG 3:

public int testMethod3(int value) {
  return 3 - (value % 4);
}

只是为了在问题中涵盖示例的末尾:return 0

private static final int[] VALUES = { 1, 0 };

public int testMethod(int value) {
    try {
        return VALUES[value];
    } catch (ArrayIndexOutOfBoundsException ex) {
        return 0;
    }
}

推荐