算术运算符和算术表达式
1.加减运算符
运算符号分别为+和-,是双目运算符。加减运算的结合性是从左到右。加减运算的操作元是整型或浮点型数据,加减运算符的优先级是4级。
2.乘、除和求余运算符
运算符号为*、/、%,都是双目运算符。
*、/、% 运算符的结合性是从左到右,乘、除和求余运算的操作元是整型或浮点型数据。*、/、%运算符的优先级是3级
3.自增、自减运算符
运算符号为++、--,都是单目运算符,运算符可以放在操作元之前,也可以放在操作元之后,但操作元必须是一个整型或浮点型变量(不能是常量或表达式),运算符的优先级是2级。运算符的作用是使变量的值增1或减1,如:
- ++x,--x表示在使用x之前,先使x的值加/减1。
- x++,x--表示在使用x之后,使x的值加/减1
4.算术表达式
5.算术混合运算的精度
关系运算符和关系表达式
关系运算符用来比较两个值的关系,关系运算符的运算结果是boolean型数据,当运算符对应的关系成立时,运算结果是true,否则是false。
1.大小关系运算符
- 大小关系运算的符号分别是>、>=、<、<=,都是双目运算符,操作元是数值型的常量、变量或表达式。
- 大小关系运算符的级别是6级。
2.等与不等关系
3.关系表达式
- 结果为数值型的变量或表达式可以通过关系运算符形成关系表达式
- 例如:(x+y+z)>30+x等
逻辑运算符和逻辑表达式
逻辑运算用来实现boolean型数据的逻辑“与”、“或”和“非”运算,运算结果是boolean型数据。
1.逻辑“与”和逻辑“或”
运算的符号是"&&"、"||",是双目运算符,操作元是boolean型的变量或求值结果是boolean型数据的表达式。"&&"和"||"的级别分别是11和12级,结合性是左到右。
- "&&"的运算法则是:当两个操作元的值都是true时,运算结果是true,否则是false。
- "||"的运算法则是:当两个操作元的值都是flase时,运算结果是false,否则是true。
短路逻辑运算符:逻辑运算符"&&"和"||"也称做短路逻辑运算符。
- 进行op1&&op2运算时,如果op1的值是false,在运算时不再去计算op2的值,直接就得出op1&&op2的结果是false。
- 进行op1||op2运算时,当op1的值是true时,在运算时不再去计算op2的值,直接就得出op1||op2的结果是true。
2.逻辑“非”
运算的符号是"!",是单目运算符,操作元在左面。当操作元的值是TURE时,运算结果是FALSE;反之为TURE。"!"的运算级别是2级,结合性从右到左。
3.逻辑表达式
赋值运算符合赋值表达式
赋值运算符:=。赋值运算符是双目运算符,左面的操作元必须是变量,不能是常量或表达式。
设x是一个整型变量,y是一个boolean型变量,x=120和y=false都是正确的赋值表达式,赋值运算符的优先级较低,是14级,结合方向右到左。
移位运算符
1.左移位运算符
- 左移位运算的符号为<<,是双目运算符。对于byte或short型数据,a<<n的运算结果是int型精度
- a<<n运算:每左移一个位,左边的高阶位上的0或1被移出丢弃,并用0填充右边的低位。
- 因此,a每左移一次,相当于将a乘以2。
2.右移位运算符
- 右移位运算的符号为">>",是双目运算符。对于byte或short型数据,a>>n的运算结果是int型精度
- a>>n运算:每右移一个位,右边的低阶位被移出丢弃,并用0或1填充左边的高位,正数用0填充,负数时用1填充。
位运算符
“按位与”运算符
- "&"是双目运算符,对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。
- 运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。
- 如果b的精度高于a,那么结果c的精度和b相同。
2.“按位或”运算符
- "|"是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。
- 运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则是1。
- 如果b的精度高于a,那么结果c的精度和b相同。
3.“按位非”运算符
- "~"是单目运算符。对一个整型数据a按位进行运算,运算结果是一个整型数据c。
- 运算法则是:如果a对应位是0,则c的该位是1,否则是0。
4.“按位异或”运算符
- "^"是双目运算符。对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。
- 运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。
位运算符在操作逻辑型数据时,与逻辑运算符&&、||、!不同的是位运算要计算完a和b之后再给出运算的结果。
条件运算符
- 条件运算符是一个3目运算符,需要连接3个操作元:
- op1?op2:op3(要求第一个操作元op1的值必须是boolean型数据)
- 运算法则是:当op1的值是true时,运算的结果是op2的值;当op1的值是false时,运算的结果是op3的值。
instanceof运算符
- boolean result=obj instanceof Class
- 该运算符是双目运算符,左面的操作元是一个对象,右面是一个类。
- 当左面的对象是右面的类创建的对象时,该运算的结果是true,否则是false。
分支语句
1.条件分支语句
if-else语句
- 由一个“if”、“else”和两个复合语句按一定格式构成。
- 一条if-else语句的作用是根据不同的条件产生不同的操作,执行法则如下:
- if后面()内的表达式的值必须是boolean型的。
- 如果表达式的值为true,则执行紧跟着的复合语句;如果表达式的值为false,则执行else后面的复合语句。
多条件if-else if-else语句
2.switch语句
- switch语句中表达式的值必须是整型或字符型;常量值1到常量值n必须也是整型或字符型。需要注意的是,在同一个switch语句中,case后的常量值必须互不相同。
- switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,就执行该case里的若干个语句,直到碰到break语句为止。
- 若没有任何常量值与表达式的值相同,则执行default后面的若干个语句。其中default是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch语句就不会进行任何处理。
循环语句
1.while循环
while语句由关键字while、括号中的一个求值为boolean型数据的表达式和一个复合语句组成,其中的复合语句称作循环体。
while语句的执行规则是:
- 计算表达式的值,如果该值是true时,就进行2,否则进行3。
- 执行循环体,再进行1
- 结束while语句的执行
2.do-while循环
do{
若干语句
}while(表达式);
do-while循环和while循环的区别:do-while的循环体至少被执行一次
3.for循环
for(表达式1;表达式2;表达式3)
{ 若干语句
}
由关键字for、3个表达式,以及一个复合语句组成,其中的“表达式2”必须是一个求值为boolean型数据的表达式,而复合语句称作循环体。
- 计算“表达式1”,完成必要的初始化工作
- 判断“表达式2”的值,若“表达式2”的值为true, 则进行3,否则进行4。
- 执行循环体,然后计算“表达式3”,以便改变循环条件,进行2。
- 结束for语句的执行。
跳转语句
- 在循环语句的循环体中使用跳转语句,用关键break;或continue;加上分号构成的语句
- 在一个循环中,比如循环50次的循环语句中,如果在某次循环体的执行中执行了break语句,那么整个循环语句就结束。
- 如果在某次循环体的执行中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。