java - 嵌套 if 语句与条件中的复杂逻辑

标签 java nested-if

我有以下问题。我需要验证日期和时间,因此如果星期几是 星期二星期四 并且时间在下午 2:00 到 3:00 之间,它会返回 false。

我有两个选择:

if (appointmentRequest.getDateTime().getDayOfWeek() == DayOfWeek.TUESDAY
                || appointmentRequest.getDateTime().getDayOfWeek() == DayOfWeek.THURSDAY) {
            if (appointmentRequest.getDateTime().getHour() == 2) {
                return false;
            }
        }

选项 2:

if ((appointmentRequest.getDateTime().getDayOfWeek() == DayOfWeek.TUESDAY
                || appointmentRequest.getDateTime().getDayOfWeek() == DayOfWeek.THURSDAY)
                && (appointmentRequest.getDateTime().getHour() == 2)) {
            return false;
        }

在这种情况下,最佳做法是什么?

最佳答案

逻辑上它们是等价的,并且在计算上运行时间的差异可以忽略不计。

始终争取清晰度,并且要更易于扩展且更易于维护。根据经验,请记住,虽然您通常编写一行代码一次,但您将调试它数百次。

我的直觉是第一个选项符合这个条件。如果您做出选择,则很容易在第二个 if 上设置换行符。

关于java - 嵌套 if 语句与条件中的复杂逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887467/

相关文章:

java - JPA持久化异常: Class name could not be resolved

C 无限循环(IF 嵌套在 FOR LOOP 中)

c++ - 如何计算相同的累计金额

java - 在java中将多个if语句组合为一个输入

java - 期待冒险

if-statement - 填写 ={ARRAYFORMULA()} 中的空白单元格

java - 如何根据较短的文本标签换行较长的文本标签?

java - 用于定义图形或流动结构的设计

java - CaptureDeviceManager.getDeviceList() 返回 null

java - JScrollPane 内的 JTable 未正确显示