当前位置: 首页 > news >正文

【Java学习笔记】运算符

运算符

运算符的类型


一、算数运算符

运算符计算范例结果
+正号+77
-负号b=11; -b-11
+加法9+918
-减法10-82
*乘法7*856
/除法9/91
%取模(取余)11%92
++自增(前)a=2;b=b++;aa=3; b=2
++自增(后)a=2;b=++a;a=3; b=3
自减(前)a=2;b=b–;aa=2; b=1
自减(后)a=2;b=–a;a=1; b=1
++字符串相加“hsp”+“edu”“hspedu”

注意点

注意:如果a负数,公式为a % b = a - (int)a / b * b得到的结果是近似值

案例说明

public class hello{public static void main(String[] args){//在%的本质看一个公式!!!!a%b=a-a/b*b//-10%3=>-10-(-10)/3*3=-10+9=-1//10%-3=10-10/(-3)*(-3)=10-9=1//-10%-3= (-10)-(-10)/(-3)*(-3)=-10+9=-1System.out.println(10 % 3); //1System.out.println(-10 % 3); //-1System.out.println(10 %-3); //1System.out.println(-10 %-3);//-1}
}

二、赋值运算符

注意是从右往左运算,把某个值赋给变量

类型

注意符合赋值运算符会进行类型转换


三、关系运算符

关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false

运算符计算范例结果
==相等于8 == 7false
!=不等于8 != 7true
<小于8 < 7false
>大于8 > 7true
<=小于等于8 <= 7false
>=大于等于8 >= 7true
instanceof检查是否是类的对象“hsp” instanceof Stringtrue

四、逻辑运算符

类型

使用规则

区别||| ; &&&

总结

&&& 的代码示例

public class Hello {// 编写一个main方法public static void main(String[] args) {// && 短路与和 & 案例演示int age = 50;// 使用 && 短路与if (age > 20 && age < 90) {System.out.println("ok100");}// 使用 & 逻辑与if (age > 20 & age < 90) {System.out.println("ok200");}// 区别int a = 4;int b = 9;// 对于 && 短路与而言,如果第一个条件为 false, 后面的条件不再判断// 对于 & 逻辑与而言,如果第一个条件为 false, 后面的条件仍然会判断if (a < 1 & ++b < 50) {System.out.println("ok300");}System.out.println("a=" + a + " b=" + b); // 输出 a=4 b=10}
}

|||的代码示例

public class LogicOperator02 {// 编写一个main方法public static void main(String[] args) {// || 短路或和 | 逻辑或案例演示// || 规则: 两个条件中只要有一个成立,结果为 true,否则为 false// | 规则: 两个条件中只要有一个成立,结果为 true,否则为 falseint age = 50;// 使用 || 短路或if (age > 20 || age < 30) {System.out.println("ok100");}// 使用 | 逻辑或if (age > 20 | age < 30) {System.out.println("ok200");}// 看看区别// (1) || 短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高// (2) | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低int a = 4;int b = 9;// 使用 || 短路或,如果条件满足,第一个条件为 trueif (a > 1 || ++b > 4) { // 可以换成 | 来测试System.out.println("ok300");}// 输出 a 和 b 的值System.out.println("a=" + a + " b=" + b); // 4 10}
}

五、三元运算符

使用方法示例:int res=a > b ? a++ : --b;

代码示例

if(a > b)
{res = a;
}
else
{res = b;
}

注意:数据类型转换问题

代码示例

public class TernaryOperatorDetail {// 编写一个main方法public static void main(String[] args) {// 表达式1和表达式2要为可以赋给接收变量的类型// (或可以自动转换/或者强制转换)int a = 3;int b = 8;// 使用三元运算符进行赋值int c = a > b ? (int) 1.1 : (int) 3.4; // 强制转换成 int 类型System.out.println("c = " + c); // 输出 c 的值double d = a > b ? a : b + 3; // 可以的,满足 int -> double 自动类型转换System.out.println("d = " + d); // 输出 d 的值}
}

运算符优先级示例

说明


http://www.mrgr.cn/news/98740.html

相关文章:

  • oracle查询锁表和解锁
  • 理解计算篇--正则表达式转NFA--理论部分
  • 【Java学习笔记】数据类型转换
  • Linux-ftp tftp vsftpd区别
  • 11-算法打卡-链表-删除链表的倒数第N个节点-leetcode(19)-第十一天
  • Redis高频面试题(含答案)
  • uniapp-商城-27-vuex 通用方法
  • MGR实现mysql高可用性
  • 4G/5G模组----概念+驱动+调试
  • 【八股】计算机网络
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(5):できます 完成了等 しか。。。ない 只有
  • 什么是进程?
  • 【回眸】Tessy集成测试软件使用指南(一)新手使用篇
  • 【开源项目】Excel手撕AI算法深入理解(三):时序(RNN、mamba)
  • 使用cursor进行原型图设计
  • 概念实践极速入门 - 常用的设计模式 - 简单生活例子
  • Flutter:图片在弹窗外部的UI布局
  • 一文掌握RK3568开发板Android13挂载Windows共享目录
  • vue3获取defineOptions的值;vue3获取组件实例;vue3页面获取defineOptions的name
  • 分布式热点网络