第二章、运算符和表达式语句

运算符

Java中语句有很多形式,表达式就是其中一种。表达式由操作数和操作运算符所组成,操作数可以是变量,方法,常量,而运算符就是数学中的运算符,如:“+”,“-”,“*”,“/”,"%"等,表达式(z+100)中,z和100都是操作数,而“+”就是运算符。Java提供许多的运算符,这些运算符除了处理一般的数学运算外,还可以做逻辑运算,地址运算等。根据使用的类的不同,可以分为:赋值运算符,算数运算符,关系运算符,逻辑运算符,条件运算符和括号运算符等。

  1. 赋值运算符
    如下表:
    赋值运算符

等号(=)并不是等于的意思,而是“赋值”的意思,后赋值的变量a会将其前面赋值的变量a的值给覆盖掉。

  1. 一元运算符
    对于大部分表达式而言,运算符前后都会有运算符,但是有一种比较特别,只需要一个操作数,就是一元运算符。
    如:
    +3;
    b = -a;
    !a;
    下表列出了一元运算符成员:
    一元运算符

  2. 算术运算符

在这里插入图片描述
在这里插入图片描述

  1. 关系运算符
    常在if语句中使用关系运算符,
    if语句的格式:
    if(布尔表达式){
    语句;
    }
    关系运算符

  2. 自增和自减运算符
    自增自减运算符
    使用自增自减运算符使得语句更加简洁,如:声明一个int变量a,程序中想让它加1,a=a+1;也可使用自增运算符a++,两者的意义是一样的。其中还有另外一种“++”用法,++a,和a++代表的意义是不一样的,a++是先执行语句,后加1,而++a是将a先加1再执行语句。

  3. 逻辑运算符
    逻辑运算符
    “&&”运算符两个操作数的返回值为都为真,结果才能为真。
    “||”运算符前后两个操作数返回值只要一个为真,结果为真。
    逻辑结果表

提问:为什么会有两种与或操作?
与操作有“&&”和“&”,或操作有“||”和“|”,这两种在使用上有何区别?什么情况该具体使用哪种操作?
回答:与分为短路与和非短路与,或分为短路或和非短路或。
区别如下:

  • 对与操作来说,要求所有条件都判断,如果使用短路与,第一个条件为false,则后面的条件将不再判断。
  • 对或操作来说,要求所有条件都判断,而如果使用短路或,第一个条件为true,则后面的条件将不再判断。
  1. 括号运算符
    括号运算符

  2. 位运算符
    位运算符指的是二进制位的运算。
    位运算符

位运算结果表

  1. 运算符的优先级

如下表,数字越小优先级越高:
运算优先级
运算优先级描述

  1. 简洁表达式
    新的运算符

选择和循环语句

一般来说,程序的结构有顺序结构、选择结构和循环结构三种,它们的共同点就是只有一个入口,也只有一个出口。

  1. 顺序结构
    就是程序从上往下,上一条语句执行完毕后,继续执行下一条,直到末尾。如下图:
    顺序结构

  2. 选择结构
    根据条件成立与否决定执行哪些语句的一种结构,如下图:
    选择结构

  3. 循环结构
    根据条件成立与否决定程序段落的执行次数,这个程序段落称为循环主体。如下图:
    循环结构

选择结构

主要包括:if,if…else,switch语句。

  1. if语句
    If格式

if语句中主体处理的语句一个时,可以省略大括号

  1. if…else语句
    if..else语句

if…else…语句中主体处理的语句一个时,可以省略大括号。

  1. 三目运算符
    有一种可以替代if…else的语句,即三目运算符:
    三目运算符
    三目运算符的格式定义如下:
    三目格式

?:与if…else 的关系:
关系

  1. if…else if…else语句
    用于表示判断多重条件的语句。
  2. switch语句
    switch可以将多选一的情况简化,在许多条件中选择找到并执行一个符合判断条件的语句,除了if…else不断判断外,还可以使用switch多重选择语句。
    格式如下:
    switch格式
    switch格式

switch选择值只能为字符或常量,和枚举。
switch的执行流程如下:

  • 计算括号中表达式结果,结果为字符,数字,或枚举。
  • 根据值检测是否符合case的值,如果所有不符合,执行default的语句,执行完毕离开switch。
  • 如果某个case符合,执行case中的语句,直到break离开switch语句。
  • 如果case语句没有加break语句,则会一直执行到switch语句末端才离开switch。
  • 如果没有定义default该执行的语句,则什么也不执行,直接离开switch。
    如下图:
    switch流程图

循环结构

  1. while循环
    当事先不知道循环该执行多少次的时候,就要用到while循环。
    格式如下:
    while循环格式

while执行流程:

  • 第一次进入循环前,必须先为控制循环变量(或表达式)赋初值。
  • 根据判断条件的内容决定是否执行循环,true执行,false不执行。
  • 执行完循环主体语句后,重新为循环变量(或表达式)赋值(增加或减少),由于while循环不会自动更改循环控制变量内容,所以这步需要程序员做,重新回到2重新判断是否执行,流程如下:
    while流程图
  1. do…while循环
    同样用于未知循环执行次数情况,与while的区别是进入while循环前,do…while会先执行主体一次,然后再判断条件真假,因此无论循环条件真假,都会执行主体语句一次,格式如下:
    do..while格式

do…while的执行流程如下:

  • 进入循环之前,先为控制循环变量赋初值
  • 直接执行循环主体,执行完毕后才开始根据判断条件内容决定是否继续执行循环,条件为真继续执行,为假跳出循环。
  • 执行完毕后,重新为循环控制变量赋值,后面步骤与while一样。
    如下图:
    do...while流程图
  1. for循环
    如果开发者已经明确了循环次数,可以使用for循环。格式如下:
    for循环格式

for语句执行流程如下:

  • 执行循环之前,先为循环控制变量赋初值。
  • 根据判断条件内容决定是否执行循环,为真执行,为假不执行。
  • 执行完毕后,循环控制变量根据增减量的要求更改控制变量的值,回到2步骤,重新判断执行。
    如下图:
    for语句执行流程
  1. 循环的中断
    主要包括:break和continue语句。
  • break语句
    break可以强行使程序中断,当程序执行到break就会离开循环,继续执行后续语句,其格式如下:
    for中break格式

  • continue语句
    它可以强迫程序跳到循环起始处,当程序运行到continue时,会停止运行剩余主体,然后回到循环的开始处继续运行,格式如下:
    for中continue格式

注:局部变量,循环体的变量属于局部变量,只能在循环体中使用,循环体之外是无法使用的。
循环体中局部变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值