-
算术运算符
-
运算符和表达式
- 运算符:对常量或者变量进行操作的符号。
- 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
- 不同运算符连接的表达式体现的是不同类型的表达式。
int a = 10; int b = 20; int c = a+b;
+是运算符,并且是算术运算符。
a+b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。
byte a = 10; byte b = 20; int c = a + b; ——>表达式中有"变量"的;叫变量表达式 byte c = 10 + 20;——>表达式中没有"变量"的;都是"常量",叫常量表达式。
-
算术运算符
符号 作用 说明 + 加 相加 - 减 相减 * 乘 两数之积 / 除 商 % 取余(取模) 获得的是两个数据做除法的余数 注意事项
/和%的区别:两个数据做除法,/取结果是商,%取结果得余数。
整数操作只能得到整数,要想得到小数,必须有浮点数参与。
-
字符的“+”操作
拿字符在计算机底层对应的数值来进行计算的。Unicode表
‘A’ → 65 A-Z是连续的
‘a’ → 97 a-z是连续的
‘0’ → 48 0-9是连续的
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
- byte类型,short类型和char类型将被提升到int类型(无论是否有int参与)
- 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
- 等级顺序:byte,short,char–>int–>long–>float–>double
int a =10; char b = 'a'; int e = a+b;//变量b char类型自动提升到int类型 故不能用char类型进行接收 double f = 10+10.14;//10自动提升到double类型,故不能用int类型进行接收
-
字符串的"+"操作
当"+"操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算。
System.out.println("World"+666);//输出World666
当‘’“+”操作中,如出现了字符串,就是连接,否则就是算术运算。
当连续进行“+”操作时,从左到右逐个执行。
System.out.println(1+99+"年");//输出100年,先执行1+99=100再连接 System.out.println('a'+5+'b'+"呵呵"+'c');//97+5+98=200呵呵c 字符本质是数字
-
-
赋值运算符
-
赋值运算符
符号 作用 说明 = 赋值 a=10,将10赋值给变量a += 加后赋值 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 注意事项:
扩展的赋值运算符隐含类强制类型转换
short i = 10; i+=20;//扩展赋值运算符隐含类强制类型转换 System.out.println("+=后i:"+i); i= (short)(i+20);//i自动提升到int 故不能直接用short进行接收,需先强制类型转换 System.out.println("=+后i:"+i);
运算优先级
byte i = 10; i *= 5+2;//i=70;i=(byte)(i * (2+5));先算算术符号再算赋值符号
-
-
自增自减运算符
符号 作用 说明 ++ 自增 变量的值加1 -- 自减 变量的值减1 注意事项:
-
++和--既可以放在变量的后边,也可以放在变量的前边。
-
单独使用的时候,++和--无论放在变量的前边还是后边,结果都是一样的。
-
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
最常见的用法:单独使用。
int i = 10; int j = i++; System.out.println("i:"+i);//11; System.out.println("j:"+j);//10;i先赋值给j(=),再进行的自增操作(++)
int j = ++i; System.out.println("i:"+i);//11; System.out.println("j:"+j);//11;i先进行自增操作(++),再进行的赋值操作(=)
char h = 'a';//字符本质是数字,97 System.out.println(h++ == 'b');//false,先对比,后自增 b字符本质是数字98 System.out.println(++h == 'b');//true,先自增,后对比 b字符本质是数字98
有多种运算符的时候,从左到右逐个进行!(暂时结论,算术运算符除外)
-
-
关系运算符
符号 说明 == 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 注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false。
千万不要把"==“误写成”="。
-
逻辑运算符
-
概述
在数学中,一个数据x,大于3,小于6,我们可以这样进行表示:3<x<6。
在Java中,需要把上面的式子先进行拆解,再进行合并表达。
-
拆解为:x>3和x<6
-
合并后:x>3&&x<6
&&其实就是一个逻辑运算符。
我们可以这样说,逻辑运算符,上用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
-
-
逻辑运算符
符号 作用 说明 & 逻辑与 a&b,a和b都是true,结果为true,否则为false | 逻辑或 a|b,a和b都是false,结果为false,否则为true ^ 逻辑异或 a^b,a和b结果不同为true,相同为false ! 逻辑非 !a,结果和a的结果正好相反 -
短路逻辑运算符
符号 作用 说明 && 短路与 作用和&相同,但是有短路效果 || 短路或 作用和|相同,但是有短路效果 注意事项:
-
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
-
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
最常用的逻辑运算符:&&、||、!
-
-
-
三元运算符
格式:关系表达式?表达式1:表达式2;
short i = 10; short j = 20; //获取i和j两个数据中的较大值 short k = i > j ? i:j; System.out.println("k:"+k);//k:20
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果果
JavaSE04-运算符
最新推荐文章于 2024-09-10 21:54:01 发布