Java 嵌套的 if 语句与 if-else

标签 java if-statement nested

<分区>

我不确定我应该更喜欢以下哪个代码片段。

A)嵌套

if(cond1 != null) {
    if(cond2 != null) {
        //Do the good stuff here
    } else {
        System.out.println("Sorry cond2 was null");
    }
} else {
    System.out.println("Sorry cond1 was null");
}

B)平坦

if(cond1 == null) {
    System.out.println("Sorry cond1 was null");
} else if(cond2 == null) {
    System.out.println("Sorry cond2 was null");
} else {
    //Do the good stuff
}

我认为 B 更具可读性。但是什么更像 Java?

最佳答案

第二个,if-then-else 更具可读性并在文档中使用 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html .

这可能取决于您项目的代码约定,但应避免深度代码嵌套,因为它不可读。不鼓励引入表面嵌套的 if 语句而不是 if-then-else

您的特定示例看起来像是使用 Objects.requireNonNull 通常更容易编写的先决条件:

Objects.requireNonNull(cond1);
Objects.requireNonNull(cond2);
//Do the good stuff

关于Java 嵌套的 if 语句与 if-else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529755/

相关文章:

java - 如何防止 JTextPane.setCaretPosition(int) 中的内存泄漏?

java - 经常使用 instanceof 是好习惯吗?

mysql - 多字段Sql查询中的IF语句

java - 使用 if 输入字符串不起作用

sql - TypeORM:如何定义嵌套数据关系?

python - 带有嵌套数组的 Scrapy

java - HTML 文本区域无法将 "enter"键识别为 WebView 中的换行符

c - 素数检查器将任何数字返回为素数。 C

mysql - 获取mysql中嵌套查询的值

java - 圆线交点