复习第一天(JavaSE)

运算符

算术运算符 : +,-,*,/,%,++,--
赋值运算符
关系运算符
逻辑运算符
三元运算符

++,--运算符

    ++,--运算符 : 变量做+1/-1操作
​
    运算法则:
        1. 变量的值做+1/-1操作
        2. 变化后的值重新赋值给原变量
​
        注意事项:
            1. ++,-- 只能和变量一起使用,不可以和常量一起使用
                例如: a++,b--  不可以 -> 10++
            2. ++,--可以放在变量的前面或者变量的后面
                a. 单独使用时: ++,-- 放在变量的前后对运算结果没有影响
                b. 参与其他运算时 :
                    ++,-- 在变量的前面, 先自增或者自减再参与运算
                    ++,-- 在变量的后面, 先参与运算再自增或者自减
​
           ++,-- 单独使用的情况是最多的,极少情况会使用参与运算的自增/自减法则!

赋值运算符

= : 把=号右边的值赋值给左边的变量
    例如: int a = 10; -> 把10赋值给int类型的变量a
    
拓展的赋值运算符: +=,-=,*=,/=,%=  -> 拓展的赋值运算符隐含了强制类型转换
      展开式 :   a += 值;  ==> a = (a的数据类型)(a + 值);

关系运算符

关系运算符 : ==,!=,>,>=,<,<=
    
注意事项:
    1. 关系运算符连接起来的式子叫关系表达式!
    2. 关系表达式的结果一定是boolean类型的
    3. 不要把==写成了=

逻辑运算符

逻辑运算符 : 连接关系表达式的
    分类:
        &: 逻辑与 -> 并且
            有false则为false
        |: 逻辑或 -> 或者
            有true则为true
        !: 逻辑非 -> 取反
            true则false,false则true
        ^: 逻辑异或 -> 中国的领结婚证关系
            相同则为false,不同则为true
    
    0 < a < 10 -> a > 0 & a < 10;
    a < 0 或者 a > 10 -> a < 0 | a > 10;
​
拓展的逻辑运算符:
    &&:有false则为false -> 短路效果: 左边为false,右边的表达式 不执行!
    ||:有true则为true -> 短路效果: 左边为true,右边的表达式 不执行! 
​
注意:
    1. 逻辑表达式的结果也一定是boolean类型
    2. 只要用到逻辑与和逻辑或,请使用逻辑双与和双或

二进制的逻辑运算和位移运算

 //二进制的逻辑运算 : 0 认为是false 1 认为是true
System.out.println(3 & 5);//1
    00000000    00000000    00000000    00000011  --> 3
                                               & : 有false则为false
    00000000    00000000    00000000    00000101  --> 5
------------------------------------------------    
    00000000    00000000    00000000    00000001  --> 1
    
System.out.println(3 | 5);//7
    00000000    00000000    00000000    00000011  --> 3
                                               | : 有true则为true
    00000000    00000000    00000000    00000101  --> 5
------------------------------------------------    
    00000000    00000000    00000000    00000111  --> 7
    
System.out.println(3 ^ 5);//6
    00000000    00000000    00000000    00000011  --> 3
                                               ^ : 相同则为false,不同则为true
    00000000    00000000    00000000    00000101  --> 5
------------------------------------------------    
    00000000    00000000    00000000    00000110  --> 6
    
二进制中的位移运算 : 右位移>>,左位移<< 
//二进制的位移运算
//右位移>> 一定是变小
System.out.println(8 >> 1);//4
    00000000    00000000    00000000    00001000  --> 8
    000000000    00000000    00000000    0000100|0 -> 右位移: 往右边移动几位
                                                结果是 : 4
//左位移<< 一定是变大
System.out.println(8 << 1);//16
    00000000    00000000    00000000    00001000  --> 8
  0|0000000    00000000    00000000    000010000  --> 左位移: 往左边移动几位
                                                结构是 : 16
                                                
    1.

三元运算符(掌握)

元 : 板块,元素
一元运算符 : ++,--,!
二元运算符 : 大部分运算符都是二元运算符
​
三元运算符 :
    格式:  结果的数据类型 变量名 = 结果为boolean类的式子 ? 结果1 : 结果2;
    执行流程:
        1. 计算结果为boolean类型式子的结果
        2. 如果结果是true,整个三元的结果是 结果1
        3. 如果结果是false,整个三元的结果是 结果2
​
    解决的问题: 求2个数的较大值,求3个数的较大值

键盘录入功能(掌握)

键盘录入功能 : Scanner 键盘录入功能的类 -> 此类的对象可以完成键盘录入功能
    
使用步骤:
    1. 导包 : 从JDK中把此类导入到自己的代码中
            import java.util.Scanner; //写在类的上面,package下面
            //使用IDEA开发,IDEA自动导包!!
    2. 创建对象 :
            Scanner 对象名 = new Scanner(System.in);//对象名 : 可以由程序员自己取名字 -> sc
    2.5 : 提示用户行为
    3. 接收录入的整数 :
            int 变量名 = 对象名.nextInt(); //变量名: 可以由程序员自己取名字
                //定义一个int类型的变量来接收录入的一个整数
​
    注意:
        1. 键盘录入需要用户配合
        2. 录入整数就只能接收整数
            InputMismatchException : 输入不匹配异常
        3. 如果要多次录入,只需要多次使用对象调方法即可,不需要重复创建对象 -> 对象可以重复使用

流程控制

1. 顺序结构
2. 分支结构
    switch
    if..else if..else
3. 循环结构
    for
    while
    do..while

顺序结构

顺序结构: 从main方法进入,从上至下,从左至右执行代码 (小括号的优先级最高)
    从左至右 : 在等号的右边从左至右
        int sum = a + b;

分支结构

分支结构 : 代码出现了岔路口,需要做选择,选哪一条路走; 
    已经学过的分支结构 : 三元运算符
    
分支结构执行完毕一定会执行分支结构后方的代码  

switch语句(理解)

switch : 分支,开关
​
格式 :
    switch(表达式){
        case 值1 : 
            语句体1;
            break;
        case 值2 : 
            语句体2;
            break;  
         case 值3 : 
            语句体3;
            break; 
            .......
         default :
            语句体n+1;
            break;
    }
​
格式解释:
    switch : 代表switch分支结构
    表达式 : 只能填 byte,short,char,int,String,枚举对象 以上类型之一的变量/常量值
            //绝大多数情况这个表达式填写的是变量!!
            //自己记忆的话 : 整数int 和 字符串 String
    case : 事件,情况 -> 有多少case就代表有多少种情况(分支)    
    值 : 必须是常量值  , 此常量值必须和表达式的类型一致!
    语句体 : 当表达式的结果和case后的值匹配后需要执行的代码  //此语句体可以是多句代码 
    break : 中断,结束    -> 结束switch语句
    default : 默认的,缺省的 
        当所有的case后的值和表达式结果都不匹配,若有default语句,执行default语句中的语句体n+1;
        //兜底
​
执行流程:
    1. 计算switch小括号内表达式的结果
    2. 从上至下依次和case后面的值进行匹配 -> 匹配 : 做全等(表达式的结果 == 值)比较
    3. 如果结果是true,进入当前case中执行case中的语句体,遇到break立刻结束switch语句
    4. 如果所有的case与表达式的结果都不匹配,若有default语句,执行default语句中的语句体n+1;
​
case穿透现象 : 当执行case中的语句体没有遇到break,那么会出现击穿效果,直接执行下方case中的语句体,直到遇到break或者switch的反括号结束switch语句
    //弊大于利 : 写switch记得写break!!

if语句(重点)

if : if 语句 -> 假如,假设
​
if 的第一种格式:
    if(结果为boolean类型的表达式){
        语句体;
    }
    //if后方代码
​
执行流程:
    1. 计算if小括号内表达式的结果
    2. 如果结果是true,执行if大括号内的语句体;
    3, 如果结果是false.结束if语句,执行if结构后方的其他代码
    
if的第一种格式是对一种情况的判断操作!
        
伪代码 : 
    if(小丽来不来){
        //小丽来的时候才能执行大括号内的代码
        去小树林走走;
    }
     
​
if 的第二种格式:
    if(结果为boolean类型的表达式){
        语句体1;
    }else{
        语句体2;
    }
    //if后方代码
​
执行流程:
    1. 计算if小括号内表达式的结果
    2. 如果结果是true,执行if大括号内的语句体1;
    3. 如果结果是false,执行else大括号内的语句体2;
    4. 执行if后方的代码
​
if的第二种格式是对两种情况的判断操作!
        
伪代码 : 
    if(小丽来不来){
        //小丽来的时候能执行的代码
        去小树林走走;
    }else{
        //小丽不来的时候能执行的代码
        约小丽闺蜜小红;
    }      
​
if的第三种格式 : 完整版if格式
    if(结果为boolean类型的表达式1){
        语句体1;
     }else if(结果为boolean类型的表达式2){
        语句体2;
     }......这里可以有很多else if
     else{
        语句体n+1;
     }
​
执行流程:
    1. 计算表达式1的结果,如果为true执行语句体1;
    2. 如果表达式1的结果是false,计算表达式2的结果,如果为true执行语句2;
    3. 如果表达式2的结果是false,继续计算下方if小括号内的其他表达式
        ......
    4. 如果所有的if判断结果都是false,如果有else结构执行else结构中的语句体n+1   
        
if的第三种格式是对三种及以上的情况进行的判断操作!  
        
伪代码 : 
    if(小丽来不来){
        //小丽来的时候能执行的代码
        去小树林走走;
    }else if(小丽的男朋友来了?){
        一起去打LOL;
    }else if(小丽的闺蜜小红带着她的闺蜜来了?){
        一起去小树林走走;
    }else{
         约小丽闺蜜小红;
    }   
​
​
注意:
    if结构可以不打大括号,但是不打大括号的if语句只能控制离他最近的那一句代码是否执行,控制不了其他代码
        //现阶段写if结构必须写大括号!!

循环结构

循环结构 :  提高代码的复用性
​
循环结构的组成:
    1. 初始化语句 : 定义一个变量,用来控制循环 -> 变量定义一次!!
    2. 条件判断语句 : 本质是boolean类型结果的式子 -> 决定重复事物是否执行!!
    3. 控制条件语句 (步进表达式) : 初始化语句做变化,变化的方向要往不满足循环条件的方向前进
    4. 循环体语句 : 重复执行的代码  

for循环结构(重点)

for循环结构格式:
    for( 初始化语句1;条件判断语句2;步进表达式3){
        循环体语句4;
    }
​
执行流程:
    1. 执行初始化语句
    2. 执行判断条件语句
            -> false : 立刻结束循环
    3. 若判断条件语句结果是true,执行循环体语句
    4. 执行步进表达式
    5  从第二步骤开始重复执行
    
执行流程代码:
    1 -> 2 -true-> 4 -> 3 -> 2 -true-> 4 -> 3 ->  ....
           -false-> 结束循环    -false-> 结束循环   
           
快捷代码 : 次数.fori : 正序循环  次数.forr : 倒序循环
​
for循环中初始化语句定义的变量,只在循环内有效;

Debug断点调试(重点)

    断点调试代码 : debug
        原理让代码慢下来,按照程序员的操作一步一步的执行代码
​
    断点调试的步骤:
        1. 打断点 : 对着行号点一下 (取消再次点击一下)
            在哪打? 哪里不会点哪里 (一个方法内点一个断点即可,点在可执行的代码上)
        2. 断点执行 -> debug

猜你喜欢

转载自blog.csdn.net/m0_70793154/article/details/126980994