rangeOrOdd - 如果输入数字在范围和/或奇数范围内,则返回1

时间:2015-10-07 14:40:21

标签: java

我试图解决这个问题:给定一个整数,如果数字介于-5和5之间,则返回1,和/或如果它是奇数。如果两个属性均不适用,则返回0。 这是我尝试过的:

int rangeOrOdd(int val) {
if (val < 5)
    return 1;

    else if (val > 5)
        return 1;
    else if ((val%2)!=0)
        return 0;
    else
        return 0;

}

1 个答案:

答案 0 :(得分:2)

问题是您正在分别检查不同的条件。例如,只要您的号码小于5,就会返回1,这是错误的,因为您会返回1来查找-1000这样的数字。

此外,您将返回0作为奇数。在这种情况下你应该返回1

您必须使用ANDs(&&)和ORs(||)来组合您的条件。

这是一个正确组合不同条件的衬垫:

return ((val < 5 && val > -5) || val % 2 == 1) ? 1 : 0;

如果你不喜欢一行,你可以像这样分开它(但它是一样的):

if ((val < 5 && val > -5) || val % 2 == 1) {
    return 1;
} else {
    return 0;
}