自学Java21

219 阅读2分钟

引言

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

java-流程控制 3

补:判断引用类型相等

  • 前面已经介绍了Java中如何进行引用类型的判断,那么python中可以直接判断吗?
x = "hello"
if x == "hello":
    print("相等")
else:
    print("不相等")

  • 显然使用==去比较python中可以直接显示相等
    • 在python中== : 它的作用是判断数值是否相等(相当于Java中的equals),所以结果肯定是相等的
    • 那么python中同样也有地址的判断,is就是判断地址是否相等(相当于Java中的==),这里的地址其实和Java的指向地址是类似的,可能关于python的拷贝相关问题会比较深入这个问题,此处只是判断不做赘述

switch多重选择(python中是没有该选择的)

  • 除了if语句外,在Java中还有一种条件判断,是根据某个表达式的结果,分别去执行不同的分支
  • 先看一下switch的结构:包含switch值和case,default关键字
public class Main {
    public static void main(String[] args) {
        int option = 99;
        switch (option) {
        case 1:
            System.out.println("Selected 1");
            break;
        case 2:
            System.out.println("Selected 2");
            break;
        case 3:
            System.out.println("Selected 3");
            break;
        default:
            System.out.println("Not selected");
            break;
        }
    }
}

  • 这个倒是有点像写sql语句中用到的case-when语句(python中依然还是只有if-else实现)
  • 方便理解可以把switch换成Java中if-else语句:(注意,下面翻译只有在switch语句中对每个case正确编写了break语句才能对应得上。)
if (option == 1) {
    System.out.println("Selected 1");
} else if (option == 2) {
    System.out.println("Selected 2");
} else if (option == 3) {
    System.out.println("Selected 3");
} else {
    System.out.println("Not selected");
}
  • 其实也就是case后面的数值就等于是==后面的数值,只是好像用switch比较方便明了一些,或者说更容易理解成各个互斥的情况,而且case不用写{},但是务必要写break,不然就会"穿透",具体放在下个章节详解