在一个“if”语句中的范围内的整数

时间:2016-05-04 16:53:45

标签: java if-statement

也许我正在用大锤拍苍蝇但是......

我正在CodingBat;

进行这项考试
  

给定2个整数,a和b,返回它们的总和。然而,[13,19]范围内的“青少年”值更加幸运。因此,如果其中任何一个值是青少年,则返回19。

这就是我想出的答案;

public int teenSum(int a, int b)
{
    if (a >= 13 && a <= 19) return 19;
    if (b >= 13 && b <= 19) return 19;
    else return a + b;
}

我想知道是否有办法在一个“if”语句中解决这个问题......是否存在?

4 个答案:

答案 0 :(得分:1)

如果您使用三元运算符(? :),则可以使用零if语句执行此操作。像,

public int teenSum(int a, int b)
{
    return (a > 12 && a < 20) || (b > 12 && b < 20) ? 19 : a + b;
}

答案 1 :(得分:0)

使用逻辑OR可以得到逻辑上等效的表达式:

if ((a >= 13 && a <= 19) || (b >= 13 && b <= 19)) return 19;

答案 2 :(得分:0)

不确定。通过将两个if语句作为保护条款,你真正做的是逻辑OR。所以:

if ((a >= 13 && a <= 19) || (b >= 13 && b <= 19)) return 19;

也可以。

顺便说一下,else是多余的。

答案 3 :(得分:0)

使用if三元运算符,您可以在没有?:语句的情况下完全执行此操作。

return (a >= 13 && a <= 19) || (b >= 13 && b <= 19) ? 19 : a + b;