运算符的优先级 算数运算符 赋值运算符

运算符的优先级

优先级 描述 运算符
1 括号 (  )            [  ]
2 正负号 +              -
3 自增     自减     非 ++       --       !
4 乘      除     取余 *        /       %
5 加       减 +               -
6 移位运算 <<      >>      >>>
7 大小关系 >      >=      <      <=
8 相等关系 ==           !=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ? :
15 赋值运算 =    +=    -=    *=    /=    %
16 位赋值运算 &=    |=    <<=    >>=    >>>=

算数运算符

算数运算符包括: 运算规则 范例 结果
+ 正号、加 +3、2+3 3、5
+ 连接字符串 “中“+“国”+2020 中国2020
- 负号、减 -3、2-3 -3、-1
* 2*3 6
/ 5/2 2
% 取模 5%2 1
++ 自增 ++1,2++ 2,3
-- 自减 --3,5-- 2,4


1.加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。

2.除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。

3.“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。

4.整数做被除数,0不能做除数,否则报错。

a++ 与 ++a 的区别:

        在独立运算时,二者并无区别;但是在混合运算时:

                a++是使变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再+1。换句话说就是: a 先进行赋值,再计算 。输出结果: a 的结果是2,b的结果是1。

public static void main(String[] args) {
    int a = 1;
    int b = a++;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是1
}

 运算符的优先级 算数运算符 赋值运算符

  

                 ++a 是使变量 a 自己+1 , 再将计算完的结果赋值给变量 b ,换句话说就是: a 先计算 , 再赋值 。 输出结果 : a 和 b 的值都是2。

public static void main(String[] args) {
    int a = 1;
    int b = ++a;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是2
}

 运算符的优先级 算数运算符 赋值运算符

赋值运算符 : 将符号右边的值 , 赋值给左边的变量

运算符 运算规则 范例 结果
= 赋值 int a = 2 2
+= 加后赋值 int a=2,a+=2 4
-= 减后赋值 int a=2,a-=2 0
*= 乘后赋值 int a=2,a*=2 4
/= 整除后赋值 int a=2,a/=2 1
%= 取模后赋值 int a=2,a%=2 0

注意 : += 是一个运算符 , 只运算一次 , 并带有强制转换的特点

public static void main(String[] args){
  short s = 1;
  s+=1;
  System.out.println(s);
}

分析: s += 1 逻辑上看作是s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围大的类型赋值到取值范围小的类型。但是,s=s+1进行两次运算+= 是一个运算符,只运算一次,并带有强制转换的特点,也就是说s += 1 就是s = (short)(s + 1),因此程序没有问题编译通过,运行结果是2.

上一篇:C语言getopt()的8个用法


下一篇:运算符学习笔记