运算符
运算符
对字面量或者变量进行操作的符号
表达式
用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式
不同运算符连接的表达式体现的是不同类型的表达式
算术运算符
算术运算符用在数学表达式中,其用法和功能与代数学(或其他计算机语言)中一样
+(加法)、-(减法)、*(乘法)、/(除法)、%(模运算)、++(递增运算)、+=(加法赋值)、-=(减法赋值)、*=(乘法赋值)、/=(除法赋值)、%=(模运算赋值)、--(递减运算)
算术运算符的运算数必须是数字类型。算术运算符不能用在布尔类型上,但是可以用在char类型上,因为实质上在java中,char类型是int类型的一个子集。
基本算术运算符——加、减、乘、除可以对所有数字类型操作。减运算也用作表示单个操作数的负号。记住对整数进行"/"触发运算时,所有的余数都要被舍去。
模运算符%,其运算结果是整数除法的余数。它能想整数类型一样被用于浮点类型(这不同于C/C++,在C/C++中模运算符%仅仅能用于整数类型)。
算术赋值运算符+=、-=、/=、*=、%=
在java中 a = a + 10; 可以简写为 a += 10;其他算术赋值运算符类似。
递增与递减运算符++、--
递增或递减运算符采用前缀(prefix)或后缀(postfix)格式都是相同的。但是,当递增或递减运算符作为一个较大的表达式的一部分,就会有重要的不同。
如果递增或递减运算符放在其运算数前面,Java就会在获得该运算数的值之前执行相应的操作,并将其用于表达式的其他部分。如果运算符放在其运算数后面,Java就会先获得该操作数的值再执行递增或递减运算。
扩展的赋值运算符底层隐含了强制类型转换
比较运算符
是两个数据之间进行比较的运算,运算结果都是布尔值true和false
==
比较符号两边数据是否相等,相等结果是true,否则为false
<
比较符号坐标的数据是否小于右边的数据,如果小于结果是true,否则为false
>
比较符号坐标的数据是否大于右边的数据,如果大于结果是true,否则为false
<=
比较符号左边的数据是否小于等于右边的数据,如果小于等于,结果是true,否则为false
>=
比较符号左边的数据是否大于等于右边的数据,如果大于等于,结果是true,否则为false
!=
比较符号两边数据是否不相等,不相等结果是true,相等结果为false
注意事项:
1.比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
2.如果进行多次判断,不能连着写,例如 1<x<3 ,此时需要用到逻辑运算符
逻辑运算符
与(并且)&&
符号两边的表达式全都是true才是true,否则就是false
口诀:同真为真,一假为假
或(或者)||
符号两边的表达式有一个是true,结果就是true; 全都是false时,结果才是false
口诀:一真为真,同假为假
非(取反)!
本来表达式结果是true,结果变成false;本来表达式结果是false,结果变成true
口诀:加了取反,真变假,假变真
逻辑运算符的操作数均为boolean表达式
逻辑运算符的短路特性
对于逻辑运算符 && 来说,若第一个表达式为假则结果为假,此时跳过第二个表达式
对于逻辑运算符 || 来说,若第一个表达式为真则结果为真,此时跳过第二个表达式
语句结构
顺序结构
程序按照从上到下,从左往右的顺序执行
选择结构
if条件语句
if结构
格式1:if(关系表达式){ 语句体 }
执行流程
1.先判断关系表达式
2.如果关系表达式符合要求,那么就执行语句体
3.如果不符合要求,那么不执行语句体
4.执行后面的其他代码
if,else结构
格式2:if(关系表达式){语句体1} else {语句体2}
执行流程
1.先判断关系表达式
2.如果关系表达式符合要求,那么就执行语句体1
3.如果不符合要求,那么执行语句体2
4.然后再继续执行其他代码
if,else if,else结构
格式3:if(关系表达式1){语句体1} else if(关系表达式2) {语句体2} else {语句体3}
执行流程
1.先判断关系表达式1
2.如果关系表达式1符合要求,那么就执行语句体1
3.如果不符合要求,那么继续判断关系表达式2是否符合要求,如果符合要求,执行语句体2
4.如果关系表达式1,2都不符合要求,那么执行语句体3
然后继续执行
注意:前面有符合的关系表达式,执行该关系表达式对应下的语句体,后面其他的就不再执行了。
switch条件语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
语法
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
switch case语句有如下规则
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
switch 语句可以包含一个 default 分支,该分支一般是 switch语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default分支不需要 break 语句。
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。