运算符:进行特定操作的符号。例如:+
表达式:用运算符连起来的式子叫做表达式。例如:20+5。又例如:a+b
四则运算:
加:+
减:-
乘:*
除:/
取模(求余数):% 例如:10%3=1
四则运算当中的加号“ + ”有常见的三种用法:
1、对于数值来说,那就是加法;
2、对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
char类型字符,和int类型数字,之间的对照关系表:ASCLL、Unicode
3、对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
任何数据类型与字符串进行拼接的时候,结果都会变成字符串
自增自减运算符
基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1
使用格式:在写变量名称前,或者写在变量名称之后。例如:++num,也可以num++
使用方式:
- 单独使用:不和其他任何操作混合,自己独立成为一个步骤。
- 混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等。
使用区别:
1、在单独使用的时候,前++和后++没有任何区别。也就是:++num;和num++;是完全一样的。
2、在混合使用的时候,有【重大区别】:
A、如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。 【先加后用】
B、如果是【后加】,那么首先使用变量本来的数值, 【然后再让变量+1】。 【先用后加】
public class Test {
public static void main(String[] args){
int num1=10
//混合使用,先++,变量立刻变成11,然后在打印结果11
System.out.println(++num1); //11
int num2=10
//混合使用,后++,首先使用变量本来的20,然后再让变量+1得到21
System.out.println(num2++); //21
int num3=30
int result1=--num3 //混合使用,前--,变量立刻-1变成29,然后将39交给result1变量
System.out.println(result1); //29
int num4=40
int result2=num-- //混合使用,后--,首先把本来的数字50交给result2,然后自己再-1变成39
System.out.println(result2); //39
}
注意事项:
只有变量才能使用自增、自减运算符。常量不能发生改变,所以不能用。
赋值运算符
赋值运算符分为:
基本赋值运算符:就是一个等号 “=”,代表将右侧的数据交给左侧的变量。
复合赋值运算符(如图):
注意事项:
- 只有变量才能使用赋值运算符,常量不能进行赋值。
- 复合赋值运算符其中隐含了一个强制类型转换(如下代码所示)。
byte num=20;
num+=5;
//nun=num+5
//num=byte + int
//num=int + int
//num=int
//num=(byte) int
System.out.println(num); //25
比较运算符
注意事项:
- 比较运算符的结果一定是一个boolear值,成立就是true,不成立就是false。
- 如果进行多次判断,不能连着写。例如: int num=2; System.out.println(1<x<3);
逻辑运算符
与 “&&” ,或 非“!”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。
例如:
int a=10
// false && .....
System.out.println(3>4 && ++a <100); //false
int b=20;
// true || .......
System.out.println(3<4 || ++b<100); //true
注意事项:
1、逻辑运算符只能用于boolear值。
2、与、或 需要左右各自有一个boolear值,但是取反只要有唯一的一个boolear值即可。
3、与、或 两种运算符,如果有多个条件,可以连续写。 两个条件:条件A && 条件B 多个条件:条件A && 条件B && 条件C
TIPS:
对于1 < x <3 的情况,应该拆解成为两个部分,然后使用运算符连接起来;如: int x=2; 1 < x && x < 3;
三元运算符:
一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=
三元运算符:需要三个数据才可以进行操作的运算符。
格式:
数据类型 变量名称 = 条件判断 ?表达式 : 表达式B;
流程:
首先判断条件是否成立:
如果成立为true,那么将表达式A的值赋给左侧的变量;
如果不成立false,那么将表达式B的值赋给左侧的变量;
二者选其一
int a=10;
int b=20;
//数据类型 变量名称 = 条件判断 ? 表达式A : B;
//判断a > b 是否成立,如果成立将a的值赋给max;如果不成立将b的值赋给max。二者选其一
int max = a > b ? a : b;
System.out.println("最大值:" + max);
注意事项:
- 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。
- 三元运算符的结果必须被使用。