自学Java20

60 阅读2分钟

引言

  • 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。

java-流程控制 2

关于Java中的if-else判断

如何进行判断?

浮点数之间如何判断呢?(浮点数学习部分有说到过判断相等是使用一个很小的差值来判断相等的)

public class Main {
    public static void main(String[] args) {
        double x = 1 - 9.0 / 10;
        if (x == 0.1) {
            System.out.println("x is 0.1");
        } else {
            System.out.println("x is NOT 0.1");
        }
    }
}

  • 上述结果的原因已经讲过此处不再赘述,那么使用差值小于某个临界值来判断:

  • 但是在python中可以直接比较(不知道为啥这个在线运行的输入框没法下拉)
x = 0.1
if x == 0.1:
	print("相等")
else:
	print("不相等")

判断引用类型相等

  • 在Java中,判断值类型的变量是否相等,可以使用==运算符
  • 前面已经讲过,在Java中字符串是属于引用类型,也就是具有"指向"性,那使用==判断的是指向呢还是指向的内容呢或者说是否指向的是同一个对象
    • 例如,下面的两个String类型,它们的内容是相同的,但是,分别指向不同的对象,用==判断,结果为false:(也很容易理解,因为这俩虽然内容一致,但是储存的地方也就是对象并不是一个,所以肯定是错误的)
public class Main {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "HELLO".toLowerCase();
        System.out.println(s1);
        System.out.println(s2);
        if (s1 == s2) {
            System.out.println("s1 == s2");
        } else {
            System.out.println("s1 != s2");
        }
    }
}

  • 如何判断引用类型的内容是否相等呢?在Java中则必须使用equals()方法:
public class Main {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "HELLO".toLowerCase();
        System.out.println(s1);
        System.out.println(s2);
        if (s1.equals(s2)) {
            System.out.println("s1 equals s2");
        } else {
            System.out.println("s1 not equals s2");
        }
    }
}

  • 但是注意s1不能是null值,不然会报错