运算符

算术运算符

算术运算符用于对变量进行基本的数学操作。

  1. +:加法。当操作数为字符串时,+ 会被当作连接符。
  2. -:减法。
  3. *:乘法。
  4. /:除法。
  5. %:取余。
int a = 1 + 2;

隐式转换(自动类型提升)

隐式转换是将一个取值范围小的数值自动转换为取值范围大的变量。这种转换是自动进行的,不会导致数据丢失。

类型转换顺序如下:
byte -> short -> int -> long -> float -> double

int a = 1;
double b = a; // int 自动转换为 double

强制转换

强制转换是将一个取值范围大的数值显式地转换为取值范围小的变量。这种转换可能会导致数据丢失或精度损失。

语法:

目标数据类型 变量名 = (目标数据类型) 被强转的数据;

示例:

double a = 1.1;
int b = (int) a; // double 强制转换为 int,结果为 1

自增自减运算符

  1. ++:变量值加1。
  2. --:变量值减1。
int a = 1;
a++; // a 的值变为 2
++a; // a 的值变为 3

赋值运算符

赋值运算符用于将 = 号右边的结果赋给左边的变量。

int num = 1 + 2 * 3; // num 的值为 7

关系运算符(比较运算符)

关系运算符用于比较两个操作数的大小关系,并返回布尔值。

  1. ==:等于。
  2. !=:不等于。
  3. >:大于。
  4. >=:大于等于。
  5. <:小于。
  6. <=:小于等于。

逻辑运算符

逻辑运算符用于对布尔表达式进行逻辑运算。

  1. &:逻辑且,两边都为真,结果才是真。
  2. |:逻辑或,两边都为假,结果才是假。
  3. ^:逻辑异或,相同为 false,不同为 true。
  4. !:逻辑非,取反。
  5. &&:短路与,两边都为真,结果才是真。
  6. ||:短路或,两边都为假,结果才是假。
  • &|:无论左边是否为真/假,右边都要执行。
  • &&||:如果左边能确定整个表达式的结果,右边将不再执行。

三元运算符

三元运算符是一种简化的条件语句,格式为:

关系表达式 ? 结果1 : 结果2;

如果关系表达式结果为 true,则取结果1;否则取结果2。

示例:

int a = 2 > 1 ? 2 : 1; // a 的值为 2

运算符优先级

运算符优先级决定了表达式中运算符的计算顺序。

  1. ():括号。
  2. */%:乘法、除法、取余。
  3. +-:加法、减法。

了解运算符优先级有助于正确编写和理解复杂的表达式。