我对java相当陌生,我正在努力改进我的代码。有没有人建议简化这个检查青少年号码(13-19)是否被传递到方法中的程序?或者是否有更好的方法来构建它。谢谢
import java.util.Arrays;
import java.util.List;
public class TeenNumberChecker {
public static void main(String[] args) {
System.out.println(hasTeen(1,1,13));
System.out.println(isTeen(14));
}
public static boolean hasTeen(int a, int b, int c){
List<Integer> teenValues = Arrays.asList(13, 14, 15, 16, 17, 18, 19);
return (teenValues.contains(a)) || (teenValues.contains(b)) || (teenValues.contains(c));
}
public static boolean isTeen(int d){
List<Integer> teenValues = Arrays.asList(13, 14, 15, 16, 17, 18, 19);
return (teenValues.contains(d));
}
}
2条答案
按热度按时间6kkfgxo01#
像这样的事情怎么样?只是检查一个数字条件?这也要快得多(考虑到要检查的年龄太少,在这种情况下这并不重要)。
减少或消除代码重复是一种很好的做法,例如通过
hasTeen()
依靠isTeen()
,因此该条件只需写入一次。如果你愿意
hasTeen()
任意地接受许多论点,以便。hasTeen(19)
及hasTeen(19,1,1,1)
这两种方法都有效,您可以替换isTeen()
与:这称为变量参数列表(或varargs)语法。为了缩短此函数的定义,您可以研究一些所谓的“函数式编程”语法,使用streams,它能够更简洁地表达在值集合上迭代以检查条件(在本例中
isTeen()
)这永远是真的。mdfafbf12#
通过在简单任务中引入列表,您将其过度复杂化。以下方法将完成此工作: