3.26Java运算符(operator)

3.26Java运算符(operator)

本章内容

  • 算术运算符

  • 赋值运算符

  • 扩展运算符

  • 关系运算符

  • 逻辑运算符

  • 位运算符

  • 条件运算符

  • 字符串连接


算术运算符(最常用的一类运算符)

  • 一元运算符

算术运算符中++、--属于一元运算符,这类运算符只需要一个操作数

  • 二元运算符

加(+)、减(-)、乘(*)、除(/)、取余(模)(%)(求余操作)---这些都需要两个操作数,称为二元运算符

二元运算符的运算规则

整数运算:

  1. 两个操作数有一个为Long,则结果也为Long

  2. 没有long,结果为int,即使操作数全为short、byte,结果也是int

浮点运算:

  1. 两个操作数有一个为double,其结果为double

  2. 只有两个操作数都是float类型的时候其结果才是float

  3. 有一个为浮点数其结果也都是浮点数

取模运算:

规则:

  • "余数"符号和左边操作数相同 如:7%3 = 1,-7 % 3 = -1, 7 % -3 = 1

实例:

/**
* TestOperator
* @author Lucifer
*/
public class TestOperatorNo1 {
   public static void main(String arguments[]){
       byte a = 1;
       int b = 2;
       //byte c = a + b; //因为有int类型的b所以不能转为byte,a+b的结果是int不能转为byte。因为占用字节大小的问题
       long c = 3;
       //int c2 = c + b; //也是不行的,因为有long类型的数据表述的范围比int大,表述范围较大的时候可以自由去转换数据类型
       float d = 3.14F;
       float f = b + c;

       //float g = d + 6.2; //会报错,因为只要有一个数是double类型其算是表达式的结果就是double类型。double类型不能赋给float类型

       System.out.println(-9%5);

       int first = 3;
       int second = first++;
       System.out.println("first:" + first + '\n' + second);

       first = 3;
       second = ++first;
       System.out.println("first:" + first + '\t' + second);
       /*
       注意:First++和++First的区别
       ++first:
       先给first进行运算
       在赋值给second
       所以first = 3,second = 4
       first++:
       先给second进行赋值
       在让first自增
       所以second = 4,first = 4;关键要注意为什么a也是4
        */

       int e = 3;
       int g = e--;
       System.out.println("e:" + e + '\t' + g);
       e = 3;
       g = --e; //--变量名或者++变量名其变量都已经发生了改变而不是单独在式子中改变。
       System.out.println("e:" + e + '\t' + g);
       /*
       自增自减的运算符其实运算了两个值,一个是被赋值的变量的值一个是变量本身的值
        */

  }
}

赋值运算符及其扩展运算符

实例:

int a = 3; //把3这个字面常量赋予变量a
int b = 4;
a += b; //相当于a = a+b; 会运算后面的结果在赋值给a
System.out.println("a=" + a + "\nb=" + b);

a *= b+3; //相当于a = a*(b+3); 会始终先运算式子右边的结果,如果右边有多个运算符则视为带了'()'
System.out.println("a=" + a + "\nb=" + b);

a = 10;
b = 15;
int c = a + b;
c /= a;
/**
* TestOperatorNo3
* @aythor Lucifer
*/
public class TestOperatorNo3 {
   public static void main(String arguments[]){
       int a = 10;
       int b = 15;
       int c = a + b;
       c %= a;
       System.out.println(c);
       c <<= 2;
       System.out.println(c);

       c = 5;
       c >>= 2;
       System.out.println(c);
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14584986.html