学习日记(顺序结构、选择结构(if、switch)、反编译)

学习日记

一、顺序结构

顺序结构是最简单的算法结构,是任何一个算法都离不开的一种基本算法结构


二、选择结构(if、switch)

  1. if 结构:if 单选择结构、if 双选择结构、if 多选择结构、嵌套的 if 结构
  • if 单选择结构:如果输入的信息为 “Sun3285”,则输出该信息
package com.Sun3285.struct;

import java.util.Scanner;

public class PracticeOne {
    public static void main(String[] args) {
        //if 单选择结构,如果输入的信息为 “Sun3285”,则输出该信息
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入信息:");

        if(scanner.nextLine().equals("Sun3285")){
            System.out.println("Sun3285");
        }

        System.out.println("End");
        scanner.close();
    }
}

学习日记(顺序结构、选择结构(if、switch)、反编译)_第1张图片

  • if 双选择结构:考试分数大于或等于 60 分为及格,小于 60 分为不及格
package com.Sun3285.struct;

import java.util.Scanner;

public class PracticeTwo {
    public static void main(String[] args) {
        //if 双选择结构:考试分数大于或等于 60 分为及格,小于 60 分为不及格
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入分数(0-100):");
        double score = scanner.nextDouble();

        if(score >= 60 && score <= 100){
            System.out.println("你的分数" + score + "为及格");
        }else {
            System.out.println("你的分数" + score + "为不及格");
        }

        scanner.close();
    }
}

学习日记(顺序结构、选择结构(if、switch)、反编译)_第2张图片

  • if 多选择结构:成绩分区间评价
package com.Sun3285.struct;

import java.util.Scanner;

public class PracticeThree {
    public static void main(String[] args) {
        //if 多选择结构:成绩分区间评价
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入你的分数:");
        double score = scanner.nextDouble();

        if(score >= 90 && score <= 100){
            System.out.println("优秀!");
        }else if(score >= 80 && score < 90){
            System.out.println("良好!");
        }else if(score >= 70 && score < 80){
            System.out.println("中等~");
        }else if(score >= 60 && score < 70){
            System.out.println("及格~");
        }else if(score >= 0 && score < 60){
            System.out.println("不及格!!!");
        }else{
            System.out.println("输入有误");
        }

        scanner.close();
    }
}

学习日记(顺序结构、选择结构(if、switch)、反编译)_第3张图片

学习日记(顺序结构、选择结构(if、switch)、反编译)_第4张图片

  • 嵌套的 if 结构:对输入的数(1-100)进行区间判断
package com.Sun3285.struct;

import java.util.Scanner;

public class PracticeFour {
    public static void main(String[] args) {
        //嵌套的 if 结构:对输入的数(1-100)进行区间判断
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入一个数(0-100):");
        double num = scanner.nextDouble();

        //总体为 if 多选择结构,嵌套了 if 双选择结构
        if(num <= 100 && num >= 50){     
            if(num <= 100 && num >= 75){
                System.out.println("你输入的数"+ num +"在 75-100 之间");
            }else{
                System.out.println("你输入的数"+ num +"在 50-75 之间");
            }
        
        //在 else if 中嵌套了 if 双选择结构
        }else if(num < 50 && num >= 0){
            if(num < 50 && num >= 25){
                System.out.println("你输入的数"+ num +"在 25-50 之间");
            }else{
                System.out.println("你输入的数"+ num +"在 0-25 之间");
            }

        }else{
            System.out.println("输入的数不在 0-100 之间");
        }

        scanner.close();
    }
}

学习日记(顺序结构、选择结构(if、switch)、反编译)_第5张图片

学习日记(顺序结构、选择结构(if、switch)、反编译)_第6张图片

  1. switch 多选择结构:判断一个变量与一系列值中某个值是否相等(匹配一个具体的值),每个值称为一个分支。

switch 语句中的变量类型可以是:

  • byte、short、int、char
  • 从 Java SE7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量
package com.Sun3285.struct;

import java.util.Scanner;

public class PracticeFive {
    public static void main(String[] args) {
        //switch 多选择结构
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入等级:");

        String grade = scanner.nextLine();

        switch (grade){
            case "A":
                System.out.println("第一等级");
                break;
            case "B":
                System.out.println("第二等级");
                break;
            case "C":
                System.out.println("第三等级");
                break;
            case "D":
                System.out.println("第四等级");
                break;
            default:
                System.out.println("输入不合法");
        }

        scanner.close();
    }
}

学习日记(顺序结构、选择结构(if、switch)、反编译)_第7张图片


三、反编译

java 文件经过编译 —> class 文件(字节码文件) —> 反编译为 java 文件(工具:IDEA)

  • 打开项目结构,选择项目输出路径。
    学习日记(顺序结构、选择结构(if、switch)、反编译)_第8张图片
    学习日记(顺序结构、选择结构(if、switch)、反编译)_第9张图片

  • 右键打开后发现为乱码
    学习日记(顺序结构、选择结构(if、switch)、反编译)_第10张图片

  • 用 IDEA 反编译

打开文件夹
学习日记(顺序结构、选择结构(if、switch)、反编译)_第11张图片

将 class 文件复制粘贴到文件夹中后,出现字节码文件
学习日记(顺序结构、选择结构(if、switch)、反编译)_第12张图片

反编译后的 java 文件与原 java 文件对比(字符的本质是数字,先把字符转化为对应的数字(用哈希值),然后再依据数字输出相应的字符)
学习日记(顺序结构、选择结构(if、switch)、反编译)_第13张图片


注意:

  • .equals() 用于比较字符串是否相等。

  • 代码整体前移:Shift + Tab。

  • case 有穿透现象,不加 break,会接着运行后续的程序。
    学习日记(顺序结构、选择结构(if、switch)、反编译)_第14张图片

  • 写程序要严谨,编写代码时要把所有的问题都思考清楚,然后逐一解决。

  • 看源码是一种优秀的思想。

希望疫情早点结束!!!

你可能感兴趣的:(#,JavaSE,学习,java)