1 运算符

  1. 普通的四则运算(加减乘除) + - * / 是不会改变变量本身的值的
    如果想要改变变量本身的值,需要把表达式的结果重新赋值给变量
  2. 取余%(求模 mod) : 取余数,如果整除,余数为0
  3. 自增自减运算符
    自增++ :表示变量本身的值+1
    自减- - : 表示变量本身的值-1
    前缀式:符号在前,先改变变量本身的值,再使用,比如打印,计算…
    后缀式:符号在后,先使用,再改变变量本身的值
  4. 比较运算符
    != == > < >= <= 比较的结果都是布尔类型的
  5. 逻辑运算符
    &&:双与/短路与:逻辑与单与相同,全真才真,只不过增加了短路的效果
    ||:双或/短路或:逻辑与单或相同,全假才假(有真则真),只不过增加了短路的效果
  6. 三目/三元运算符
    格式:1 ?2 :3;1是表达式,若1真,取2,若1假取3
  7. 赋值运算符
    = :是普通的赋值运算符,等号右边的值交给等号左边的变量来保存
    复合赋值运算符:+= -= *= /=,主要是可以简写&类型的自动转换
    sum += 30; 等效于 sum = sum+30;

    2 流程控制

    2.1 顺序结构

    顺序结构从头到尾所有代码依次都会执行到
    可以解决输入 输出 计算等问题,但是不可以先做判断,再选择性的执行代码

    2.2 分支结构

    1 单分支结构(if)

    适合只有一个判断条件时使用,符合条件,执行大括号里的代码,不符合条件,大括号里的代码跳过
    1. if(判断条件) {
    2. 执行此处代码1
    3. }

    2 多分支结构(if else)

    适合有两种情况时使用,符合条件,执行代码1,其他情况执行代码2
    1. if(判断条件) {
    2. 如果符合判断条件,执行此处代码,如果不符合,继续向下判断条件else
    3. }else {
    4. 如果不符合判断条件,执行此处代码
    5. }

    3 嵌套分支结构(if else if)

    适合有多个条件时使用,else-if的个数没有限制,else可加可不加
    1. if(判断条件1) {
    2. 如果符合判断条件1,执行此处代码1,如果不符合,继续向下判断条件2
    3. }else if(判断条件2) {
    4. 如果符合判断条件2,执行此处代码2,如果不符合,继续向下判断条件3
    5. }else if(判断条件3) {
    6. 如果符合判断条件3,执行此处代码3,如果不符合,继续向下判断
    7. }else {
    8. 如果以上条件都不满足,执行此处代码
    9. }

    4 选择结构(switch)

    1. switch(a){
    2. case 1 : 操作1break;【可选】
    3. case 2 : 操作2break;【可选】
    4. case 3 : 操作3break;【可选】
    5. case 4 : 操作4break;【可选】
    6. default : 保底选项;【可选】
    7. }
    执行顺序:先拿着变量a的值,依次与每个case后的值做比较,如果相等,就执行当前case后的操作,若case后没有break,就绪继续执行下一个case后的操作,如果一直没有遇到break,就会发生穿透的现象,包括default

注意事项:

  1. 变量a支持的类型byte short char int String
  2. 变量a的数据类型与case后value的数据类型必须一致
  3. 如果没有添加break,并且又有case被匹配到,会发生穿透的现象,包括deafult
  4. case的个数 是否加break 是否加default 完全根据自己的业务来决定
  5. 如果添加了default保底选项,又没有任何一个case被匹配到,就会执行default后的语句
  6. 一般我们习惯在每个case后加break【这个只是建议,具体还是根据业务来写】

    5 循环结构(for)

    1. for(开始条件 ; 循环条件 ; 更改条件){
    2. 循环体
    3. }
    image.png
    注意1:写法小窍门:从哪开始 到哪结束 循环变量如何变化
    注意2:for循环能够执行多少次,取决于循环变量可以取到几个值