运算符
Java中语句有很多形式,表达式就是其中一种。表达式由操作数和操作运算符所组成,操作数可以是变量,方法,常量,而运算符就是数学中的运算符,如:“+”,“-”,“*”,“/”,"%"等,表达式(z+100)中,z和100都是操作数,而“+”就是运算符。Java提供许多的运算符,这些运算符除了处理一般的数学运算外,还可以做逻辑运算,地址运算等。根据使用的类的不同,可以分为:赋值运算符,算数运算符,关系运算符,逻辑运算符,条件运算符和括号运算符等。
- 赋值运算符
如下表:
等号(=)并不是等于的意思,而是“赋值”的意思,后赋值的变量a会将其前面赋值的变量a的值给覆盖掉。
-
一元运算符
对于大部分表达式而言,运算符前后都会有运算符,但是有一种比较特别,只需要一个操作数,就是一元运算符。
如:
+3;
b = -a;
!a;
下表列出了一元运算符成员:
-
算术运算符
-
关系运算符
常在if语句中使用关系运算符,
if语句的格式:
if(布尔表达式){
语句;
}
-
自增和自减运算符
使用自增自减运算符使得语句更加简洁,如:声明一个int变量a,程序中想让它加1,a=a+1;也可使用自增运算符a++,两者的意义是一样的。其中还有另外一种“++”用法,++a,和a++代表的意义是不一样的,a++是先执行语句,后加1,而++a是将a先加1再执行语句。 -
逻辑运算符
“&&”运算符两个操作数的返回值为都为真,结果才能为真。
“||”运算符前后两个操作数返回值只要一个为真,结果为真。
提问:为什么会有两种与或操作?
与操作有“&&”和“&”,或操作有“||”和“|”,这两种在使用上有何区别?什么情况该具体使用哪种操作?
回答:与分为短路与和非短路与,或分为短路或和非短路或。
区别如下:
- 对与操作来说,要求所有条件都判断,如果使用短路与,第一个条件为false,则后面的条件将不再判断。
- 对或操作来说,要求所有条件都判断,而如果使用短路或,第一个条件为true,则后面的条件将不再判断。
-
括号运算符
-
位运算符
位运算符指的是二进制位的运算。
- 运算符的优先级
如下表,数字越小优先级越高:
- 简洁表达式
选择和循环语句
一般来说,程序的结构有顺序结构、选择结构和循环结构三种,它们的共同点就是只有一个入口,也只有一个出口。
-
顺序结构
就是程序从上往下,上一条语句执行完毕后,继续执行下一条,直到末尾。如下图:
-
选择结构
根据条件成立与否决定执行哪些语句的一种结构,如下图:
-
循环结构
根据条件成立与否决定程序段落的执行次数,这个程序段落称为循环主体。如下图:
选择结构
主要包括:if,if…else,switch语句。
- if语句
if语句中主体处理的语句一个时,可以省略大括号
- if…else语句
if…else…语句中主体处理的语句一个时,可以省略大括号。
- 三目运算符
有一种可以替代if…else的语句,即三目运算符:
三目运算符的格式定义如下:
?:与if…else 的关系:
- if…else if…else语句
用于表示判断多重条件的语句。 - switch语句
switch可以将多选一的情况简化,在许多条件中选择找到并执行一个符合判断条件的语句,除了if…else不断判断外,还可以使用switch多重选择语句。
格式如下:
switch选择值只能为字符或常量,和枚举。
switch的执行流程如下:
- 计算括号中表达式结果,结果为字符,数字,或枚举。
- 根据值检测是否符合case的值,如果所有不符合,执行default的语句,执行完毕离开switch。
- 如果某个case符合,执行case中的语句,直到break离开switch语句。
- 如果case语句没有加break语句,则会一直执行到switch语句末端才离开switch。
- 如果没有定义default该执行的语句,则什么也不执行,直接离开switch。
如下图:
循环结构
- while循环
当事先不知道循环该执行多少次的时候,就要用到while循环。
格式如下:
while执行流程:
- 第一次进入循环前,必须先为控制循环变量(或表达式)赋初值。
- 根据判断条件的内容决定是否执行循环,true执行,false不执行。
- 执行完循环主体语句后,重新为循环变量(或表达式)赋值(增加或减少),由于while循环不会自动更改循环控制变量内容,所以这步需要程序员做,重新回到2重新判断是否执行,流程如下:
- do…while循环
同样用于未知循环执行次数情况,与while的区别是进入while循环前,do…while会先执行主体一次,然后再判断条件真假,因此无论循环条件真假,都会执行主体语句一次,格式如下:
do…while的执行流程如下:
- 进入循环之前,先为控制循环变量赋初值
- 直接执行循环主体,执行完毕后才开始根据判断条件内容决定是否继续执行循环,条件为真继续执行,为假跳出循环。
- 执行完毕后,重新为循环控制变量赋值,后面步骤与while一样。
如下图:
- for循环
如果开发者已经明确了循环次数,可以使用for循环。格式如下:
for语句执行流程如下:
- 执行循环之前,先为循环控制变量赋初值。
- 根据判断条件内容决定是否执行循环,为真执行,为假不执行。
- 执行完毕后,循环控制变量根据增减量的要求更改控制变量的值,回到2步骤,重新判断执行。
如下图:
- 循环的中断
主要包括:break和continue语句。
-
break语句
break可以强行使程序中断,当程序执行到break就会离开循环,继续执行后续语句,其格式如下:
-
continue语句
它可以强迫程序跳到循环起始处,当程序运行到continue时,会停止运行剩余主体,然后回到循环的开始处继续运行,格式如下:
注:局部变量,循环体的变量属于局部变量,只能在循环体中使用,循环体之外是无法使用的。