运算符:进行特定操作的符号
表达式:用运算符连接起来的式子叫表达式
四则运算(算数运算符)
- 加:+
- 减:-
- 乘:*
- 除:/
- 取模(取余数):%(只有对于整数来说才有,取模运算符才有取余的意义)
注意事项
- 运算当中有不同的数据类型时,结果将是数据类型范围大的那个
四则运算中的“+”加号有三种常见用法
- 对于数值来说就是加法
- 对于字符char来说,先将char类型转换成int类型,再进行计算(char类型和int类型的对照表:ASCII或者Unicode)
- 对于字符串来说,加号表示字符串之间的拼接
- 任何数据类型和字符踹进行连接时,结果都会是字符串
自加运算符(++)
自减运算符(--)
- 基本含义:让一个变量加一个数值,让一个变量减一个数值‘
- 使用格式:写在变量名称之前或者写在变量名称之后,例如:++num,num++
- 使用方法
- 单独使用:不跟其他任何操作混合
- 混合使用:和其他操作混合,例如:与赋值混合、与打印操作混合等
- 使用区别
- 单独使用时,++num和num++是没有区别的
- 在混合使用时,++num,先自增再进行运算;num++,先运算再进行自增
-
public class HelloWorld{ public static void main (String[] args){ int num=10; //单独使用 ++num; System.out.println(++num); num++; System.out.println(num++); //混合使用 int a=5; System.out.println(++a);//先自增再使用 System.out.println(a); System.out.println(a++);//先使用再自增 System.out.println(a); int x=10; int y=20; int z=++x+y--; System.out.println(z);//结果是:31 System.out.println(x); System.out.println(y); } }
D:javatest>java HelloWorld 12 13 6 6 6 7 31 11 19 D:javatest>
- 注意事项:只用变量才能使用自增减运算符,常量不可以
赋值运算符
- 基本赋值运算符
- 等于号:=
- 复合赋值运算符
- 加等号:+=,例如:a+=1,即a=a+1
- 减等号:-=
- 乘等号:*=
- 除等号:/=
- 取模等:%=
- 注意事项
- 只有变量才能使用赋值运算符,常量不能使用
- 复合赋值运算符中隐藏着一个强制类型转换,例:byte num=10;num+=5;
比较运算符
- 比较运算符
- 等于:==
- 大于:>
- 小于:<
- 大于等于:>=
- 小于等于:<=
- 不等于:!=
- 注意事项
- 比较运算符的结果是boolean值,成立就是true,不成立就是false
- 不支持连续使用多个比较运算符,如1<X<2,在代码中是不支持的
逻辑运算符
- 逻辑运算符
- 与(并且):&&
- 或(或者):||
- 非(取反):!
- 与&&、或||具有短路效果,根据左面已经能够判断结果时,不在执行右面的代码,节约性能
-
public class HelloWorld{ public static void main (String[] args){ int a=10; System.out.println(3>4&&++a>100);//因为3>4已经能判断结果为false,所有++a并没有执行 System.out.println(a); } }
D:javatest>java HelloWorld false 10 D:javatest>
-
- 注意事项
- 逻辑运算符只能用于Boolean值
- 与、或两种运算符,如果有多个条件可以连续使用,例如:条件a&&条件b&&条件c
三元运算符
一元运算符:只需要一个数据就可以进行操作的运算符,如:取反!、自增++、自减--
二元运算符:需要两个数据才能进行操作的运算符,如:加+、减-
三元运算符:需要三个数据才能进行操作的运算符
- 格式:数据类型 变量名称=条件判断?表达式a:表达式b;
- 流程
- 先判断表达式是否正确
- 如果表达式正确,将表达式a赋值给变量
- 如果表达式不正确,将表达式b赋值给变量
-
public class HelloWorld{ public static void main (String[] args){ int a=10; int b=20; int c=a>b?a:b; System.out.println(c); } }
D:javatest>javac -encoding "UTF-8" HelloWorld.java D:javatest>java HelloWorld 20 D:javatest>
- 注意事项
- 必须同时保证表达式a和表达式b都符合左侧变量类型的要求
- 三元运算符的结果必须被使用