Skip to content

在上面的示例中,我们首先定义了一个整数变量x,然后使用if语句检查x是否大于0。如果条件成立(即x大于0),则会执行if代码块中的语句,打印出"x 是正数"。除了基本的if语句外,还有一些相关的语句形式可以扩展条件逻辑:

  • if-else语句:用于在条件为真时执行一个代码块,否则执行另一个代码块。
int x = 5;

if (x > 0) {
    System.out.println("x 是正数");
} else {
    System.out.println("x 不是正数");
}
  • if-else if-else语句:用于根据多个条件选择性地执行不同的代码块。
int x = 5;

if (x > 0) {
    System.out.println("x 是正数");
} else if (x < 0) {
    System.out.println("x 是负数");
} else {
    System.out.println("x 是零");
}
  • 嵌套的if语句:在一个if代码块中嵌套另一个if语句,用于更复杂的条件逻辑。
int x = 5;
int y = 10;

if (x > 0) {
    if (y > 0) {
        System.out.println("x 和 y 都是正数");
    } else {
        System.out.println("x 是正数,y 不是正数");
    }
} else {
    System.out.println("x 不是正数");
}

判断引用类型相等

在 Java 中,判断引用类型相等有两种情况需要考虑:引用相等和对象内容相等。

  • 引用相等:使用双等号运算符(= =)可以判断两个引用是否指向同一个对象。如果两个引用指向的是同一个对象,则它们是引用相等的。例如:
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

System.out.println(str1 == str2); // 输出 true,因为str1和str2都指向字符串常量池中的同一个对象
System.out.println(str1 == str3); // 输出 false,因为str1和str3指向不同的对象
  • 对象内容相等:对于引用类型,我们通常需要比较它们的内容是否相等,而不仅仅是比较引用是否相等。这时候需要使用equals()方法进行比较。例如:
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

System.out.println(str1.equals(str2)); // 输出 true,因为str1和str2的内容相等
System.out.println(str1.equals(str3)); // 输出 true,因为str1和str3的内容相等

需要注意的是,在使用equals()方法进行比较之前,要确保对象不为null,否则会抛出空指针异常。可以使用Objects.equals(obj1, obj2)方法来避免这个问题,该方法会先检查是否为null,再调用equals()方法进行比较。 另外,对于自定义的类,如果想要实现对象内容相等的判断,需要重写该类的equals()方法,并根据对象的属性来进行比较。