Java 用函数简化if语句

Java 用函数简化if语句,java,if-statement,simplify,Java,If Statement,Simplify,我正在为一个学校研讨会做一个日历项目。它应该在三个月后打印出来。(您指定要打印一月,然后打印上一年的十二月、一月和二月) 我有这个if语句,但是我想把它简化成三行代码。我该怎么做?可能吗 if(月==1){ 打印月份(12,第1年); 打印月份(月、年); 打印月份(月+1,年); }否则,如果(月==12){ 打印月份(第1个月,年); 打印月份(月、年); 打印月份(1年+1); }否则{ 打印月份(第1个月,年); 打印月份(月、年); 打印月份(月+1,年); } 尝试使用: 尝试使用:

我正在为一个学校研讨会做一个日历项目。它应该在三个月后打印出来。(您指定要打印一月,然后打印上一年的十二月、一月和二月)

我有这个if语句,但是我想把它简化成三行代码。我该怎么做?可能吗

if(月==1){
打印月份(12,第1年);
打印月份(月、年);
打印月份(月+1,年);
}否则,如果(月==12){
打印月份(第1个月,年);
打印月份(月、年);
打印月份(1年+1);
}否则{
打印月份(第1个月,年);
打印月份(月、年);
打印月份(月+1,年);
}
尝试使用:

尝试使用:

您可以使用DateTime类来表示当前的年/月,这可能比将年和月作为独立整数携带要好

然后你可以写:

printMonth(dt.minusMonths(1));
printMonth(dt);
printMonth(dt.plusMonths(1));
您可以使用DateTime类来表示当前的年/月,这可能比将年和月作为独立整数携带要好

然后你可以写:

printMonth(dt.minusMonths(1));
printMonth(dt);
printMonth(dt.plusMonths(1));

当我自己遇到这样的问题时,我倾向于使用年和月相结合的方法(也是因为我想保存一些代码行):

如您所见,这需要您调整
printmount
方法,当然,如果可能的话

private void printMonth(int monthAndYear) {
    int year = monthAndYear / 12;
    int month = monthAndYear % 12;
    // other code...
}

尽管如此,这仍然是四行…

当我自己遇到这样的问题时,我倾向于使用一种年和月相结合的方法(也是因为我想保存一些代码行):

如您所见,这需要您调整
printmount
方法,当然,如果可能的话

private void printMonth(int monthAndYear) {
    int year = monthAndYear / 12;
    int month = monthAndYear % 12;
    // other code...
}

尽管如此,这仍然是四行…

同样的方法适用于Java 8+的LocalDate/LocalDateTimeName方法适用于Java 8+的LocalDate/LocalDateTime