编程自学指南:java程序设计开发,什么是运算符?算术运算符,逻辑运算符、 位运算符,三目运算符与优先级

学习目标

  1. 掌握Java中各类运算符的使用场景

  2. 理解运算符优先级规则

  3. 能够通过运算符解决实际计算问题

  4. 避免常见运算符误用导致的错误


一、课程引入

1.1 什么是运算符?

  • 作用:对变量或值进行操作的符号(如加减乘除)

  • 分类

    • 算术运算符(+-*/%

    • 赋值运算符(=+=-=

    • 比较运算符(>==!=

    • 逻辑运算符(&&||!

    • 位运算符(&|^

    • 三目运算符(? :


二、算术运算符

2.1 基本算术运算符

运算符描述示例结果(假设a=10, b=3)
+加法a + b13
-减法a - b7
*乘法a * b30
/除法a / b3(整数除法)
%取模(余数)a % b1
案例1:学生成绩计算

int math = 85;  
int english = 90;  
int total = math + english;  
double average = total / 2.0;  // 必须用2.0避免整数除法错误  
System.out.println("总分:" + total + ", 平均分:" + average); 
案例2:判断奇偶性

int num = 7;  
if (num % 2 == 0) {  
    System.out.println("偶数");  
} else {  
    System.out.println("奇数");  
}  

2.2 自增/自减运算符

运算符描述示例结果(假设a=5)
++自增a++ 或 ++aa=6
--自减a-- 或 --aa=4
案例3:前后缀区别

int x = 5;  
int y = x++;  // y=5, x=6(先赋值后自增)  
int z = ++x;  // x=7, z=7(先自增后赋值) 

三、赋值与比较运算符

3.1 赋值运算符

运算符示例等价于
=a = 10-
+=a += 5a = a + 5
-=a -= 3a = a - 3
*=a *= 2a = a * 2
案例4:商品价格累计

double price = 100.0;  
price *= 0.8;  // 打8折  
System.out.println("折后价:" + price); // 80.0 

3.2 比较运算符

运算符描述示例结果(假设a=5, b=3)
==等于a == bfalse
!=不等于a != btrue
>大于a > btrue
<小于a < bfalse
>=大于等于a >= 5true
案例5:判断闰年

int year = 2024;  
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;  
System.out.println(year + "年是闰年吗?" + isLeapYear); 

四、逻辑与位运算符

4.1 逻辑运算符

运算符描述示例结果(假设a=true, b=false)
&&逻辑与a && bfalse
``逻辑或`ab`true
!逻辑非!afalse
案例6:登录验证

String username = "admin";  
String password = "123456";  
boolean isValid = username.equals("admin") && password.equals("123456");  
System.out.println("登录成功?" + isValid);

4.2 位运算符(了解即可)

运算符描述示例结果(假设a=5=0101, b=3=0011)
&按位与a & b0001(1)
``按位或`ab`0111(7)
^按位异或a ^ b0110(6)
案例7:交换两个变量的值(不使用临时变量)

int x = 5, y = 3;  
x = x ^ y;  
y = x ^ y;  
x = x ^ y;  
System.out.println("x=" + x + ", y=" + y); // x=3, y=5

五、三目运算符与优先级

5.1 三目运算符

  • 语法条件 ? 表达式1 : 表达式2

案例8:判断成绩等级

int score = 85;  
String level = score >= 60 ? "及格" : "不及格";  
System.out.println("成绩等级:" + level); // 及格

5.2 运算符优先级

优先级运算符
最高()++--
*/%
+-
><>=<=
==!=
&&、``
最低=+=-=
案例9:优先级问题

int result = 5 + 3 * 2;  // 结果是11,而非16

六、综合练习与错误分析

6.1 课堂练习

练习1:计算三角形面积

double base = 5.0;  
double height = 3.0;  
double area = 0.5 * base * height;  
System.out.println("面积:" + area);
 
练习2:数字加密(位移运算)

int num = 1234;  
int encrypted = (num * 10 + 5) ^ 0xFF; // 简单加密示例  
System.out.println("加密后:" + encrypted); 

6.2 错误代码分析

int a = 10;  
int b = 0;  
int c = a / b;  // 错误:除零异常  
boolean flag = 1;  // 错误:boolean类型不能赋值为1

七、总结与练习

7.1 总结

  • 核心运算符:算术、赋值、比较、逻辑、三目

  • 易错点:整数除法、自增前后缀区别、逻辑短路特性

7.2 课后任务

  1. 编写程序计算一元二次方程根(ax²+bx+c=0)

  2. 使用三目运算符判断一个数是否为水仙花数

  3. 预习下一节课:控制结构(if-else、switch)

7.3 扩展挑战

  • 用位运算实现两个整数的加法(禁止使用+运算符)

  • 答案在评论区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值