复习笔记1-基础知识,数组,流程控制

## 1.字面量
数据在程序中的书写格式。
（字符：有且仅能一个字符）
```java
System.out.println('\n');  // \n 代表的是换行的意思
System.out.println('\t'); // \t  代表的是一个tab(缩进)
```
## 2.变量
记住程序要处理的数据。
```java 
        // 格式：数据类型 变量名称 = 数据；
        //       int     age     18
        int age = 18;  // 变量名称首字母小写:age
```
## 3.关键字，标识符
关键字：java语言自己用到的一些词，如：public class...
标识符:我们写程序时起的一些名字，如：类名，变量名
⭐变量名：首字母小写，满足驼峰模式
⭐类名：首字母大写，满足驼峰模式
## 4.数据类型
⭐基本数据类型：
①整型：byte short int long
②浮点型（小数）：float double
③字符型：char
④布尔型:boolean
⭐引用数据类型：String类型
## 5.类型转换
让不同类型的数据能够进行运算或赋值
#### ①自动类型转换：
低精度→高精度（例如从整型到浮点型的转换）
char可以转换为int类型
```java
        //自动类型转换：int转为double
        int n = 10;
        double b = n;
        System.out.println(b);// 10.0
```
⭐表达式的自动类型转换：
表达式的最终结果类型由表达式中的最高类型决定
byte,short,char是直接转换成Int类型参与运算的
#### ②强制类型转换：
高精度→低精度
```java
        // 强制类型转换：double转为int,截断小数保留整数
        // 强制类型转换快捷键：alt+回车 再回车 
        double d = 10.5;
        int i = (int)d;
        System.out.println(i);// 10
```
## 6.运算符
#### ①基本的算术运算符
⭐/:两个整数相除，结果还是整数（因为最高类型是整数）
⭐%:取余
⭐+：与字符串运算的时候是用作连接符的，结果依然是一个字符串
#### ②自增自减运算符
只能操作变量，不能操作字面量
```java
// 报错
 System.out.println(2++);
```
⭐放在变量前面：先对变量进行+1，-1，再拿变量的值进行运算
⭐放在变量后面：先拿变量的值进行运算，再对变量的值进行+1，-1
```java
        // 先加后运算
        int o = 10;
        int w = ++o;
        System.out.println(w);// 11
        System.out.println(o);// 11
        // 先运算后加
        int q = 5;
        int r = q++;
        System.out.println(q);// 6
        System.out.println(r);// 5
```
#### ③关系运算符
⭐>=:大于或者等于  
⭐<=:小于或者等于  
⭐==:等于  
⭐！=：不等于
布尔值判断真假
#### ④逻辑运算符
⭐&和&&：
全部都是true,结果才是true；有一个是false，结果为false
&&：前一个为false,后一个不进行判断了
⭐|和||：只要有一个是true，结果就是true
||:前一个为true,后一个不进行判断了
⭐非（！）：你真我假，你假我真
⭐逻辑异或（∧）：前后条件结果相同，为false;前后条件结果不同，为true
#### ⑤三元运算符
格式： 条件表达式？值1：值2；
流程：首先计算关系表达式的值，如果值为true,返回值1；如果为false,返回值2
## 7.静态初始化数组
定义数组的时候，直接给数组赋值
#### ①定义格式
```java
        // 静态数组格式：
        // 数据类型[] 数组名 = {元素1，元素2...}；
               int[]  ages = {12,24,36};
        // 数据变量名中存储的是数组在内存中的地址
        System.out.println(ages); // [I@4eec7777
```
#### ②数组的访问
数组名称[索引]
#### ③数组的长度属性：
数组名.length
#### ④数组的最大索引：
数组名.length-1
```java
        // TODO 掌握数组的访问
        int[] arr = {12,24,36};
        // 0  1  2
        // 1.访问数组的全部数据
        System.out.println(arr[0]); // 12

        // 2.修改数组中的数据
        arr[0] = 66;
        System.out.println(arr[0]); // 66

        // 3.访问数组的元素个数  数组名.length
        System.out.println(arr.length); // 3

        //4.：获取数据的最大索引  arr.length - 1 (前提是数组中存在数据)
        System.out.println(arr.length - 1); // 2
```
#### ⑤数组的遍历
一个一个的访问一遍容器中的数据
```java
        int[] ages = {12,24,36};
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]); // 12 24 36
        }
```
## 8.动态初始化数组
定义数组时先不存入具体的元素值，只确定数组存储的数据类型和数组的长度
#### 定义格式
```java
        // 定义格式： 数据类型[] 数组名 = new 数据类型[长度]
              int[] ages = new int[3] ;//ages = [0,0,0]
        // 赋值
        ages[0] = 12;
        System.out.println(ages[0]); // 12
```
## 9.分支结构
#### ①if分支：可以根据条件，选择执行某段代码
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/09d7ea5c-63b3-27e2-7ad6-164fe17cc058.png)
```java
        // TODO 掌握if分支三种形式的用法和执行流程
        // 需求1：测量用户体温，高于37度就报警
        double t = 38.9;
        if ( t > 37 ){
            System.out.println("体温异常");// 体温异常
        }

        // 需求2；发红包：余额99元，发出90元。余额够，发红包；余额不足则需提示
        double money = 82;
        if (money >= 90){
            System.out.println("发红包！");
        }else {
            System.out.println("余额不足"); // 余额不足
        }

        // 需求3：绩效系统根据员工打分输出对应的绩效级别
        //0-60；D    60-80：C      80-90：B     90-100：A
        int score = 78;
        if (score >= 0 && score < 60){
            System.out.println("D");
        } else if (score >= 60 && score < 80) {
            System.out.println("C"); // c
        }else if (score >= 80 && score < 90) {
            System.out.println("B");
        }else if (score >= 90 && score <= 100) {
            System.out.println("A");
        }else {
            System.out.println("输入错误");
        }
```
#### ②switch分支：通过比较值来决定执行哪条分支
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/731aa899-8e36-8933-5911-8a1e35dde821.png)
```java
// TODO 掌握switch的写法，理解其执行流程
        String week = "周日";
        switch(week){  // 周日 777
            case "周一":
                System.out.println("111");
                break;
            case "周二":
                System.out.println("222");
                break;
            case "周三":
                System.out.println("333");
                break;
            case "周四":
                System.out.println("444");
                break;
            case "周五":
                System.out.println("555");
                break;
            case "周六":
                System.out.println("666");
                break;
            case "周日":
                System.out.println("777");
                break;
            default:
                System.out.println("其他");
        }
```
## 10.循环结构
#### ①for循环：控制一段代码反复执行多次
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/1f16ca01-1847-60fa-c479-c21ef40ca967.png)
#### ②while循环
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/f4eec480-329d-cb54-7910-ff0ebb9ce877.png)
#### ③do-while循环
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/a2ec17cd-988b-aeb6-8e90-159ce2e8c7f8.png)
#### ④死循环
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/430bcb06-6a72-48fa-33f5-b8adfd2050c3.png)
#### ⑤循环嵌套：外部循环每循环一次，内部循环会全部执行完一轮
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3899383/5e7020a6-9de1-581f-7471-cb613b3fffad.png)
## 11.跳转关键字
```java
        // TODO 掌握Break和Continue的作用
        // Break：跳出并结束当前所在循环的执行
        for (int i = 1; i <= 5 ; i++) {
            System.out.println(i);
            if (i==3){     //  1 2 3
                break;// 遇到break，整个循环就结束了。跳出循环执行后续的代码。
            }
        }

        
        //Continue:跳出当前循环的当次执行，直接进入循环的下一次执行
        for (int i = 1; i <= 5 ; i++) {
            if (i == 3){  // 1 2 4 5
                continue;// 遇到continue,当次循环结束，继续进行下一轮的循环
            }
            System.out.println(i);
        }
```