JAVA基础——流程控制

    技术2022-07-11  75

    流程控制

    输入输出

    printLn() //输出并换行 print() //输出 格式化输出: double d = 3.1415924; System.out.printf("%.2f\n", d); //显示两位小数3.14 System.out.printf("%.1f\n", d); //显示4位小数3.1416 占位符 是 % %d 格式化输出整数 %x 格式化输出十六进制 %f 格式化输出浮点数 %e 格式化输出科学计数法表示的浮点数 %s 格式化字符串 输入 Scanner scanner = new Scanner(System.in) String test = Scanner.nextLine(); //读取一行存入字符串 int age = Scanner.nextInt(); //读取一行获取整数

    if 判断

    浮点数 浮点数在计算机中常常无法精确表示,并且可能出现误差 因此判断浮点数相等用 == 判断不靠谱 需要使用如下 即在接受的误差范围内来判断是否是我们需要的数字 这个在金融相关业务中会用到 if (Math.abs(x - 0.1) < 0.00001) { System.out.println("x is 0.1"); } else { System.out.println("x is NOT 0.1"); } 引用类型判断相等 这是最基本的 也最常用的 String a = "hello"; String b = "HEllo".toLowerCase() System.out.println(a == b) //false // = 这个判断的是地址 System.out.println(a.equals(b)) //true // equals 这个判断的是值 x.equals(“aaa”) 防止x为null时报错 需要使用两种 x != null && x.equals("aaa") "aaa".equals(x)

    switch

    1. 注意写上break 和 default 2. java12的简洁写法 switch 和 yield int opt = switch (fruit) { case "apple" -> 1; case "pear", "mango" -> 2; default -> { int change = change(); yield change; // 标明返回的是这个 }; }; // 注意赋值语句要以;结束

    while 和 do while

    避免死循环导致100%的CPU占用

    for

    for (初始条件; 循环检测条件; 循环后更新计数器) { // 执行语句 }

    数组操作: 遍历 和 排序

    遍历数组

    int[] ns = { 1, 1, 2, 3, 5, 8 }; for: for (int i=0; i<ns.length; i++) { int n = ns[i]; System.out.println(n); } for each: for (int n : ns) { System.out.print(n + ", "); } Arrays.toString(ns) //数组内容

    数组排序

    冒泡排序的特点是,每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以“刨除”最后的数,每一轮循环都比上一轮循环的结束位置靠前一位。 int[] ins = {100,321,32,41,53,1,3,6,4}; for (int i = 0; i < ins.length; i++) { for(int j = 0; j < ins.length - 1 - i; j++) { //从前往后循环 所以这个循环是确定最后一个值已经是自己想要的了 if (ins[j] < ins[j + 1]) { //现在是从小到大排 改成> 就是从大到小排 //这个方法就是数据交换 无论怎么排序都是这么写 int tmp = ins[j + 1]; ins[j + 1] = ins[i]; ins[i] = tmp; } } }

    注意事项

    int[] a = {4,1,6} 当执行Arrays.sort(a) 之后 本来内存中是 4 1 6 内存中的值改为 1 4 6 但是字符串 String[] s = {"caa", "abb", "gccc"} 当值行Arrays.sort(s) 之后,本来内存中是 “caa” “abb” "gccc" 内存中的值未变 还是 “caa” “abb” “gccc” 字符串是引用数据类型 值不变 只是元素的指向变了
    Processed: 0.013, SQL: 9