1.算数运算符
运算符:对常量或变量进行操作的服啊后
表达式:用运算符吧常量或者变量结合起来符合java语法的式子称之为表达式。
不同运算符连接的表示是体现的是不同类型的表达式
int a =10;
int b =20;
int c = a + b;
"+"是算术运算符,"a+b"是表达式,也可称之为算数表达式
应用
符号 | 作用 | 说明 |
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | |
% | 取余 |
注意:/和%的区别:/ 的作用是两个数相除;%的作用是取两个数相除以后的余数。
整数的操作最后的结果只得到整数,要想得到小数结果,则需要有浮点数参与运算。
int a =10;
int b =3:
System.out.println(a/b); //输出的结果是3
System.out.println(a%b); //输出的结果是1
“+”的操作
除了常规从小学就开始使用的“+”的含义以外,在java中也可以对字符或者字符进行运算。而参与运算的基础则是根据ASCII码表运算的。
// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少char ch1 = 'a' ;System . out . println ( ch1 + 1 ); // 输出 98 , 97 + 1 = 98char ch2 = 'A' ;System . out . println ( ch2 + 1 ); // 输出 66 , 65 + 1 = 66char ch3 = '0' ;System . out . println ( ch3 + 1 ); // 输出 49 , 48 + 1 = 49
byte b1 = 10 ;byte b2 = 20 ;// byte b3 = b1 + b2; // 该行报错,因为 byte 类型参与算术运算会自动提示为 int , int 赋值给 byte 可能损失精度int i3 = b1 + b2 ; // 应该使用 int 接收byte b3 = ( byte ) ( b1 + b2 ); // 或者将结果强制转换为 byte 类型-------------------------------int num1 = 10 ;double num2 = 20.0 ;double num3 = num1 + num2 ; // 使用 double 接收,因为 num1 会自动提升为 double 类型
System . out . println ( 1 + 99 + " 年黑马 " ); // 输出: 100 年黑马System . out . println ( 1 + 2 + "itheima" + 3 + 4 ); // 输出: 3itheima34// 可以使用小括号改变运算的优先级System . out . println ( 1 + 2 + "itheima" + ( 3 + 4 )); // 输出: 3itheima7
自增自减运算符的使用
符号 | 作用 | 说明 |
++ | 自增 | 变量的值+1 |
-- | 自减0 | 变量的值-1 |
注意:在单个字符的自增自减运算是,自增自减运算符不论在字符的左边还是右边,最后的运算结果是一样的。但其内在的运算规律则是不一样的
当自增自减运算符在变量的右边时,则是先把变量参与操作而后变量再做自增或者自减的运算。
当自增自减运算符在变量的左边时,则是先把变量做自增或者自减运算,而后变量再参与操作。
int i = 10 ;i ++ ; // 单独使用System . out . println ( "i:" + i ); // i:11int j = 10 ;++ j ; // 单独使用System . out . println ( "j:" + j ); // j:11int x = 10 ;int y = x ++ ; // 赋值运算, ++ 在后边,所以是使用 x 原来的值赋值给 y , x 本身自增 1System . out . println ( "x:" + x + ", y:" + y ); // x:11 , y:10int m = 10 ;int n = ++ m ; // 赋值运算, ++ 在前边,所以是使用 m 自增后的值赋值给 n , m 本身自增 1System . out . println ( "m:" + m + ", m:" + m ); // m:11 , m:11
赋值运算符
赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可以修改的,不能是常量。
符号 | 作用 | 说明 |
= | 赋值 | a=1,将1赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值赋值给b |
-= | 减后赋值 | a-=b,将a-b的值赋值给b |
*= | 乘后赋值 | a*=b,将a*b的值赋值给b |
/= | 除后赋值 | a/=b,将a➗b的商赋值给b |
%= | 趋于后赋值 | a%=b,将a➗b的余数赋值给b |
关系运算符
关系运算符有6种,用于表达变量之间的关系,分别为小于、等于、大于、小于等于、大于等于、不等于。
符号 | 说明 |
== | a==b,判断a和b是否相等,相等则为true,否则false |
!= | a!=b,判断a和b 的值是否不相等 |
> | a>b,判断a的值是否大于b |
< | a<b,判断a的值是否小于b |
>= | a>=b,判断a的值是否大于等于b |
<= | a<=b,判断a的值是否小于等于b |
逻辑运算符
逻辑运算符是把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,一判断程序中的表达式是否成立,判断的结果是true或者false。
符号 | 作用 | 说明 |
& | 逻辑与 | a&b,a和b的结果都是true,结果则是true,否则为false |
l | 逻辑或 | a l b,a和b都true,结果是true,否则为false |
^ | 逻辑异或 | a^b,a和b的结果不同为true,否则为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
// 定义变量int i = 10 ;int j = 20 ;int k = 30 ;//& “ 与 ” ,并且的关系,只要表达式中有一个值为 false ,结果即为 falseSystem . out . println (( i > j ) & ( i > k )); //false & false, 输出 falseSystem . out . println (( i < j ) & ( i > k )); //true & false, 输出 falseSystem . out . println (( i > j ) & ( i < k )); //false & true, 输出 falseSystem . out . println (( i < j ) & ( i < k )); //true & true, 输出 trueSystem . out . println ( "--------" );//| “ 或 ” ,或者的关系,只要表达式中有一个值为 true ,结果即为 trueSystem . out . println (( i > j ) | ( i > k )); //false | false, 输出 falseSystem . out . println (( i < j ) | ( i > k )); //true | false, 输出 trueSystem . out . println (( i > j ) | ( i < k )); //false | true, 输出 trueSystem . out . println (( i < j ) | ( i < k )); //true | true, 输出 trueSystem . out . println ( "--------" );//^ “ 异或 ” ,相同为 false ,不同为 trueSystem . out . println (( i > j ) ^ ( i > k )); //false ^ false, 输出 falseSystem . out . println (( i < j ) ^ ( i > k )); //true ^ false, 输出 trueSystem . out . println (( i > j ) ^ ( i < k )); //false ^ true, 输出 trueSystem . out . println (( i < j ) ^ ( i < k )); //true ^ true, 输出 falseSystem . out . println ( "--------" );//! “ 非 ” ,取反System . out . println (( i > j )); //falseSystem . out . println ( ! ( i > j )); //!false , , 输出 true
短路逻辑运算符
符号 | 作用 | 说明 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
ll | 短路或 | 作用和l相同,但是有短路效果 |
int x = 3 ;int y = 4 ;System . out . println (( x ++ > 4 ) & ( y ++ > 5 )); // 两个表达都会运算System . out . println ( x ); // 4System . out . println ( y ); // 5System . out . println (( x ++ > 4 ) && ( y ++ > 5 )); // 左边已经可以确定结果为 false ,右边不参与运算System . out . println ( x ); // 4System . out . println ( y ); // 4
三元运算符
表达式: 关系表达式?表达式1 :表达式2;
int a = 10 ;int b = 20 ;int c = a > b ? a : b ; // 判断 a>b 是否为真,如果为真取 a 的值,如果为假,取 b 的值