运算符
基本的运算符
-
算术运算符:+、-、*、/、%
-
/使用时,如果两个整数做除法,其结果一定是整数
//目标掌握基本算数运算符
int a = 10 ;
int b = 3 ;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);//3.3333==>3
System.out.println(3*1.0/2);//1.5
System.out.println(3/2*1.0);//1.0 -
数据拆分案例:
//拆分一个三位数
int data = 589;
//1.个位
int ge = data % 10;
System.out.println(ge);//9
//2.十位
int shi = data /10 % 10;
System.out.println(shi);//8
// 3. 百位
int bai = data / 100 ;
System.out.println(bai);//5
“+”做连接符
+与字符串做+运算时会被当成连接符,其结果还是字符串
// +连接符的识别
int a = 5;
System.out.println("abc"+'a');//abca
System.out.println("abc"+a);//abc5
System.out.println(5+a);//10
System.out.println("abc"+5+'a');//abc5a
System.out.println(15+"abc"+15);//15abc15
System.out.println(a+'a');//102
System.out.println(a+""+'a');//5a
System.out.println(a+'a'+" the ");//102 the
System.out.println("the"+a+'a');//the5a
System.out.println("the"+(a+'a'));//the102
自增自减运算符
-
++ :对当前变量加一
-
-- :对当前变量减一
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算。
赋值运算符
操作符 描述 例子 = 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C + = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A - = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A * = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A / = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A (%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A << = 左移位赋值运算符 C << = 2等价于C = C << 2 >> = 右移位赋值运算符 C >> = 2等价于C = C >> 2 &= 按位与赋值运算符 C&= 2等价于C = C&2 ^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2 | = 按位或赋值操作符 C | = 2等价于C = C | 2
关系运算符
| 运算符 | 描述 | 例子 |
|---|---|---|
| == | 检查如果两个操作数的值是否相等,如果相等则条件为真。 | (A == B)为假。 |
| != | 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 | (A != B) 为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 | (A> B)为假。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 | (A <B)为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 | (A> = B)为假。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 | (A <= B)为真。 |
逻辑运算符
| 操作符 | 描述 | 例子 |
|---|---|---|
| && | 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 | (A && B)为假。 |
| | | | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 | (A | | B)为真。 |
| ! | 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 | !(A && B)为真。 |
&&(短路与)和&(逻辑与)的区别:&&如果发现前面是false后面不执行,直接返回结果;
||(短路或)和|(逻辑或)的区别:||如果发现前面是true后面不执行,直接返回结果。
三元运算符
格式:条件表达式 ? 值 1:值2;
流程:先判断条件表达式的值,如果值为true,返回值1;如果值为false,返回值2.
int i = 10;
int j = 20;
int k = 30;
int x= i > j ? i > k ? i : k : j > k ? j : k ;
//int x= i > j ? (i > k ? i : k) :( j > k ? j : k );
System.out.println(x);
运算符的优先级
| 类别 | 操作符 | 关联性 |
|---|---|---|
| 后缀 | () [] . (点操作符) | 左到右 |
| 一元 | expr++ expr-- | 从左到右 |
| 一元 | ++expr --expr + - ~ ! | 从右到左 |
| 乘性 | * /% | 左到右 |
| 加性 | + - | 左到右 |
| 移位 | >> >>> << | 左到右 |
| 关系 | > >= < <= | 左到右 |
| 相等 | == != | 左到右 |
| 按位与 | & | 左到右 |
| 按位异或 | ^ | 左到右 |
| 按位或 | | | 左到右 |
| 逻辑与 | && | 左到右 |
| 逻辑或 | | | | 左到右 |
| 条件 | ?: | 从右到左 |
| 赋值 | = + = - = * = / =%= >> = << =&= ^ = | = | 从右到左 |
| 逗号 | , | 左到右 |

浙公网安备 33010602011771号