Java程序设计基础知识——运算符与表达式

一、算术运算符

算术运算符主要用于整型或浮点型数据的运算

运算符 用法 含义 结合性
二元运算符 op1+op2 加法
二元运算符 op1 – op2 减法
二元运算符 op1∗op2 乘法
二元运算符 / op1/op2 除法
二元运算符 op1%op2 模运算(求余)
一元 运算符 +op1 正数
一元 运算符 – op1 负数
一元 运算符 ++ ++op1,op1++ 自增 右,左
一元 运算符 – – – – op1,op1++ 自减 右,左

1.算术运算符的运算特点

(1)对 于 二 元 运 算 符 ,运 算 结 果 的 数 据 类 型 一 般 为 两 个 操 作 数 中 表 达 范 围 较 大 的 类 型 .
例如,一个整数和浮点数运算的结果为浮点数.

(2)对 于 一 元 运 算 符 ,运 算 结 果 的 类 型 与 操 作 数 的 类 型 相 同 .

(3)自 增 、自 减 运 算 符 有 前 缀 和 后 缀 两 种 形 式 ,当 是 前 缀 形 式(即 + + 、- - 符 号 出 现 在 变 量 的 左 侧)时 ,对 变 量 实 施 的 运 算 规 则 是“先 运 算 后 使 用”;当 是 后 缀 形 式 (即 + + 、- - 符 号 出 现 在 变 量 的 右 侧)时,对 变 量 实 施 的 运 算 规 则 是“先 使 用 后 运 算”.

2.算术运算符的注意事项

(1)在Java中 ,%(求 模 运 算 符)的 操 作 数 可 为 浮 点 数 ,如 52.3%10=2.3.

(2)Java对 + 运 算 进 行 了 扩 展 ,可 作 字 符 串 连 接 运 算 符 ,如"ab"+"efd"得"abefd".

(3)做 + 运 算 时,如 果 一 个 操 作 数 是 字 符 串,其 他 操 作 数 自 动 转 换 成 字 符 串,例 如 :

String s; s="s:"+65;//结果是s="s:30"

(4)byte、short和 char等 类 型 进 行 混 合 运 算 时 ,会 先 自 动 转 换 为int类 型 再 运 算

package code 02; 
public class TestOperator{ 
	public static void main(String[]args){ 
		int i=29; 
		int j=3;
		float a=23.5f; 
		double b=4.0; 
		System.out.println("i+a="+(i+a)); //整数与浮点数相加 
		System.out.println("i∗j="+(i*j)); //两个整数相乘 
		System.out.println("i/j="+(i/j)); //对于整数,运算结果为整数 
		System.out.println("i%j="+(i%j)); //求余数 
		System.out.println("a∗b="+(a*b)); //两个浮点数相乘 
		System.out.println("a/b="+(a/b)); //对于浮点数,运算结果为浮点数 
		System.out.println("a%b="+(a%b)); //浮点数求余,结果为浮点数 
		System.out.println("i++="+(i++)); //先使用,后自增 
		System.out.println("++i="+(++i)); //先自增,后使用 
	} 
}

程序的输出结果如下:

i+a=52.5 
i∗j=87 
i/j=9 
i%j=2 
a∗b=94.0 
a/b=5.875 
a%b=3.5 
i++=29 
++i=31

在打印输出语句中,+除了可以进行整型或浮点数的加法运算外,还可以进行字
符串的连接,可以把字符串和数值类型在一起进行运算,最后转换为字符串

二、赋值运算符

  • 赋值运算符是二元运算符
  • 左边的操作数必须是变量,右边的操作数为表达式
  • 左右两边的类型如果一致,则直接将右边的值赋给左边的变量;如果不一致,则将表达式的值需要转换为左边变量的类型,再赋值。
  • 与其他运算符相比,赋值运算符的优先级最低,且具有右结合特性

1、基本赋值运算符

int i,j;
i=10;
j=i+20

2、扩展赋值运算符

在赋值运算符=前面加上其他运算符,即构成扩展赋值运算符

a+=5; 等价于 a=a+5;
a*=b+5; 等价于 a=a*(b+5);

常见的扩展赋值运算符:

运算符 示例 含义
+ = a+=3 a=a+3
– = a–=3 a=a–3
* = a*=3 a=a*3
/ = a/=3 a=a/3
% = a%=3 a=a%3

3、赋值相容

如果变量的类型和表达式的类型是相同的就可以赋值,称为类型相同;如果两者类型不 同,并且变量类型比表达式类型长时,系统会自动将表达式的结果转换为较长的类型。如 int 转 换 为long,这 时 也 可 以 赋 值,称 为 赋 值 相 容。例 如 :

long value=98L;//类型相同
long value2=4;//int向long自动转换,赋值相容

如 果 变 量 类 型 比 表 达 式 类 型 短 ,则 赋 值 不 兼 容 ,编 译 时 产 生“可 能 存 在 的 精 度 丢 失”的 错 误。例如:

int i=99L;//不能把long数据赋值给int型变量

赋值不兼容时,可以使用强制类型转换

int i=(int)123123123123L;//强制类型转换

注:强制类型转换可能会发生精度丢失

三、条件运算符

(boolean_expr)?true_statement:false_statement;

其 含 义 为 :若 boolean_expr 为 真 ,则 执 行 语 句true_satatement;若 boolean_expr为 假 ,则 执 行语句false_statement,而且两条语句需要返回相同(相容)的数据类型.true_statement 和false_statement都 需 要 有 返 回 值

int result=sum==0?100:2∗ num;//如果sum等于0,则result赋值为100,否则赋值为2∗num.

条 件 运 算 符 可 以 替 代 简 单 的 if-else语 句

四、位运算符

Java提供位操作运算符。所 有 的 数 在Java虚 拟 机 中 都 会 转 换 为 补 码 二 进 制 表 示
如:整数1表 示 为 补 码 二 进 制 为 00000000 00000000 00000000 00000001(4个字节)
整 数-1 表 示 为 补 码 二 进 制 为11111111 11111111 11111111 11111111(4个字节)

位运算不是对整个数进行运算,而是对该数的二进制位上的0或1进行运算

在这里插入图片描述

五、表达式

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hyh17808770899/article/details/105985973