第4节运算符(上)
算数运算符
运算符和表达式
运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:
int a=10;
int b=20;
int c=a+b;
+ :是运算符,并且是算术运算符
a+b :是表达式,由于+是算术运算符,所以这个表达式叫算术表达式
算术运算符
符号 作用
+ 加
- 减
* 乘
/ 除
% 取余 获取的是两个数据做除法的余数
public class OperatorDemo01{ public static void main(String[] args){ //定义两个变量 int a=6; int b=4; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b); System.out.println(a%b); //除法得到的是商,取余得到小数,必须有浮点数的参与 //整数相除只能得到整数,要想得到小数,必须有浮点数的参与 System.out.println(6.0/4); } }
注意事项:
/和我%的区别:两个数据做除法,/取结果的商,%取结果的余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
字符的“+”操作
/* 字符的"+"操作 */ public class OperatorDemo02{ public static void main(String[] args){ //定义两个变量 int i=10; char c='A';//'A'的值是65 char c1='a';//'a'的值是97 char c2='0';//'0'的值是48 System.out.println(i+c);//结果75; System.out.println(i+c1);//结果107; System.out.println(i+c2);//结果58; } }
拿字符在计算机底层对应的数值来进行计算的
'A'=65 A-Z是连续的
'a'=97 a-z是连续的
'0'=48 0-9是连续的
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte类型,short类型和char类型将被提升到int类型
整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:byte,shoit,char->int->long->float->double
//char ch=i+c; //char类型会被自动提升为int类型 int j=i+c; System.out.println(j); //int k=10+13.14; double d=10+13.14;
字符串的“+”操作
/* 字符串的“+”操作 */ public class OperatorDemo03{ public static void main(String[] args){ System.out.println("it"+"heima");//运行结果itheima System.out.println("it"+666);//运行结果it666 System.out.println(666+"it");//运行结果666it System.out.println("it"+6+66);//运行结果it666 System.out.println(1+99+"年屌丝");//运行结果100年屌丝 } }
当“+“操作中出现字符串时,这个”+“是字符串连接符,而不是算术运算符。
“itheima”+666
在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行
1+99+“年屌丝”
赋值运算符
= 赋值 a=10,将10赋值给变量a;
/* 赋值运算符 */ public class OperatorDemo04{ public static void main(String[] args){ //把10赋值给int类型的变量i int i=10; System.out.println("i:"+i); //+= 把左边和右边的数据做加法操作,结果赋值给左边 i+=20; //i=i+20; System.out.println("i:"+i); //注意:扩展的赋值运算符底层隐含了强制类型转换 short s=10; s+=20; //s=s+20;//报错!错误原因看表达式的类型提升 //s=(short)(s+20); System.out.println("s:"+s); } }
+= 加后赋值 a+=b,将a+b的值给a
-= 减后赋值 a-=b,将a-b的值给a
*= 乘后赋值 a*=b,将a*b的值给a
/= 除后赋值 a/=b,将a/b的值给a
%= 取余后赋值 a%=b,将a/b的余数给a
注意事项:
扩展的赋值运算符隐含了强制类型转换
自增自减运算符
++ 自增 变量的值加1
-- 自减 变量的值减1
/* 自增自减运算符 */ public class OperatorDemo05{ public static void main(String[] args){ //定义变量 int i=10; System.out.println("i:"+i); //单独使用 //i++; //++i; System.out.println("i:"+i); //参与操作使用 //int j=i++;//运行结果i=11,j=10; int j=++i;//运行结果i=11,j=11; System.out.println("i:"+i); System.out.println("j:"+j); } }
注意事项:
++和--既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候,++和--无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用
关系运算符
== a==b,判断a和b的值是否相等,成立为true,不成立为false
!= a!=b,判断a和b的值是否不相等,成立为true,不成立为false
> a>b,判断a是否大于b,成立为true,不成立为false
>= a>=b,判断a是否大于等于b,成立为true,不成立为false
< a<b,判断a是否小于b,成立为true,不成立为false
<= a<=b,判断a是否小于等于b,成立为true,不成立为false
public class OperatorDemo06{ public static void main(String[] args){ //定义变量 int i=10; int j=20; int k=10; //== System.out.println(i==j); System.out.println(i==k); System.out.println("---------"); //!= System.out.println(i!=j); System.out.println(i!=k); System.out.println("---------"); //> System.out.println(i>j); System.out.println(i>k); System.out.println("---------"); //>= System.out.println(i>=j); System.out.println(i>=k); System.out.println("---------"); //不小心把==写成了= //把j的值赋值给了i,然后输出i的值 System.out.println(i=j); } }
注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false
千万不要把“==”误写成“=”。

浙公网安备 33010602011771号