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

day05_java中常见的运算符

字面量或者变量进行操作的符号就是运算符用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

java中常用的运算符有下面几种

算术运算符

代码示例

public class Demo01Operator {public static void main(String[] args) {int a = 3;int b = 4;System.out.println(a + b);// 7System.out.println(a - b);// -1System.out.println(a * b);// 12//整数相除 不保留小数System.out.println(a / b);// 0//如果想要显示小数 使用浮点类型计算System.out.println((double) a / b);// 0.75//商*除数 + 余数 = 被除数System.out.println(a % b);// 3}
}

经典案例

public class Test {public static void main(String[] args) {//定义一个四位数 int number = 1234;//通过运算操作求出个位,十位,百位,千位System.out.println(number + " 这个四位数个位上的数字是:" + (number % 10));System.out.println(number + " 这个四位数十位上的数字是:" + (number / 10 % 10));System.out.println(number + " 这个四位数百位上的数字是:" + (number / 100 % 10));System.out.println(number + " 这个四位数千位上的数字是:" + (number / 1000 % 10));}
}

注意事项:

  • / 和 % 的区别:两个数据做除法,/ 取结果的商,%取结果的余数
  • 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算
  • 求余运算,余数的符号只看被除数

“+”号的两种用法

  • 第一种:对于+两边都是数值的话,+就是加法的意思

System.out.println(1+2);//3
System.out.println(1+'a');//98
  • 第二种:对于+两边至少有一边是字符串得话,+就是拼接的意思,其结果依然是一个字符串

String str = "Java";
// String + int --> String
System.out.println(str + 520); // Java520// String + int + int --> String  + int-->String
System.out.println(str + 5 + 20); // Java520

默认情况下是从左到右进行运算,我们可以使用小括号来调整运算顺序

//默认情况下,从左到右
System.out.println("1" + 2 + 3);//123
//小括号里的先算
System.out.println("1" + (2 + 3));//15

自加自减运算

  • ++ -- 既可以放在变量的后边,也可以放在变量的前边
  • ++ 、-- 只能操作变量,不能操作字面量的 

单独使用

单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的

  • 变量前++ :例如 ++a
  • 变量后++ :例如 a++
public class Demo03Operator {public static void main(String[] args) {// 定义一个int类型的变量aint a = 3;//变量前++和变量后++,变量的结果是一样的;++a;System.out.println(a);//4a++;System.out.println(a);//5}
}

复合使用

  ++、--如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别

  • 放在变量的前面先对变量进行+1、-1,再拿变量的值进行运算
  • 放在变量的后面先拿变量的值进行运算,再对变量的值进行+1、-1
public class Demo04Operator {public static void main(String[] args) {// 其他变量放在一起使用int x = 3;int y = x++;System.out.println(x);//4System.out.println(y);//3System.out.println("==========");// 和输出语句一起int z = 5;System.out.println(z++);//5System.out.println(z);//6}
}

赋值运算符

基本赋值运算符:就是“ 

int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储。

扩展赋值运算符

代码示例

public class Demo04Operator {public static void main(String[] args) {short s = 10;/*s = s + 10;  此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度*/s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);System.out.println(s);//20}
}

注意事项:

  • 所有的赋值运算符的 = 左边一定是一个变量  

关系运算符/比较运算符

对数据进行条件判断的符号,最终会返回的结果一定是 布尔结果(false,true)

示例

public class Demo05Operator {public static void main(String[] args) {int a = 10;int b = 10;System.out.println(a == b);  //trueSystem.out.println(a != b); // falseSystem.out.println(a > b); //  falseSystem.out.println(a >= b); // trueSystem.out.println(a < b); // falseSystem.out.println(a <= b); // true//相等判断必须是== 如果使用=是在进行赋值操作!System.out.println(a = b); // 10 }
}

逻辑运算符 

可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果

示例

public class Demo06Operator {public static void main(String[] args) {//定义变量int i = 10;int j = 20;int k = 30;//  & “与”,并且的关系,只要表达式中有一个值为false,结果即为falseSystem.out.println((i > j) & (i > k)); //falseSystem.out.println((i < j) & (i > k)); //falseSystem.out.println((i > j) & (i < k)); //falseSystem.out.println((i < j) & (i < k)); //trueSystem.out.println("--------");//  | “或”,或者的关系,只要表达式中有一个值为true,结果即为trueSystem.out.println((i > j) | (i > k)); //falseSystem.out.println((i < j) | (i > k)); //trueSystem.out.println((i > j) | (i < k)); //trueSystem.out.println((i < j) | (i < k)); //trueSystem.out.println("--------");// ^ “异或”,相同为false,不同为trueSystem.out.println((i > j) ^ (i > k)); //falseSystem.out.println((i < j) ^ (i > k)); //trueSystem.out.println((i > j) ^ (i < k)); //rueSystem.out.println((i < j) ^ (i < k)); //falseSystem.out.println("--------");// ! “非”,取反System.out.println((i > j)); //falseSystem.out.println(!(i > j)); // true}
}
短路逻辑运算符
  • 在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。
  • 同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。

示例

public class Demo07Operator {public static void main(String[] args) {int x = 3;int y = 4;System.out.println((x++ > 4) & (y++ > 5)); //falseSystem.out.println(x); // 4System.out.println(y); // 5//左边已经可以确定结果为,false 右边不参与运算System.out.println((x++ > 4) && (y++ > 5)); // falseSystem.out.println(x); // 5System.out.println(y); // 5System.out.println((x++ > 4) | (y++ > 5)); //trueSystem.out.println(x); // 6System.out.println(y); // 6//左边已经可以确定结果为 true,右边不参与运算System.out.println((x++ > 4) || (y++ > 5)); // trueSystem.out.println(x); // 7System.out.println(y); // 6}
}

三元运算符

语法格式

执行流程

  1. 首先计算关系表达式的值
  2. 如果值为true,返回表达式1的值
  3. 如果为false,返回表达式2的值

示例

/*
需求:一座寺庙里住着三个和尚,已知他们的身高分别为135cm、110cm、165cm,请用程序实现获取这三个和尚的最高身高。
*/
public class Demo08Test {public static void main(String[] args) {//1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。int height1 = 135;int height2 = 110;int height3 = 165;//2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。int tempHeight = height1 > height2 ? height1 : height2;//3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。int maxHeight = tempHeight > height3 ? tempHeight : height3;//4:输出结果System.out.println("maxHeight:" + maxHeight); //maxHeight:165}
}

运算符优先级

在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-” 。

示例

public class Demo09Test {public static void main(String[] args) {// 目标:看看Java是否存在优先级,大家以后需要注意优先级问题System.out.println(10 > 3 || 10 > 3 && 10 < 3); // trueSystem.out.println( (10 > 3 || 10 > 3 ) && 10 < 3); // false}
}

写代码的注意事项

  • 表达式不要太复杂
  • 先算的使用( )
http://www.xdnf.cn/news/345277.html

相关文章:

  • Unity-Shader详解-其五
  • 【报错】view size is not compatible with input tensor‘s size and stride
  • 电子电器架构 --- 电气/电子架构如何发展以满足其处理和传感器融合需求
  • 图片上传的util和使用
  • CFCA受邀参加盛京银行手机银行7.0发布会
  • Kibana vs Grafana:日志分析能力深度对比与移动应用案例
  • 企业面试题综合(1)
  • SLAM文献之KernelGPA: A Globally Optimal Solution to Deformable SLAM in Closed-form
  • Kafka消息不丢失处理
  • MATLAB界面——valueChangedFcn回调和valueChanging回调
  • 数值分析——条件数
  • 04-redis
  • 从零开始了解数据采集(二十四)——工业4.0讲解
  • 企业微信自建消息推送应用
  • 【JS逆向基础】爬虫核心模块:request模块与包的概念
  • MySQL创新应用:分布式数据库与AI融合的智能分析平台
  • 问鼎昇腾AI创新大赛金奖!aiXcoder如何重塑软件开发新范式?
  • 为什么强调 RESTful 的无状态性?-优雅草卓伊凡
  • Python实例题:Python获取喜马拉雅音频
  • 【AI入门】CherryStudio入门5:创建知识库,对接Obsidian 笔记
  • C++ 深入解析 数据结构中的 AVL树的插入 涉及的旋转规则
  • 手撕基于AMQP协议的简易消息队列-2(所用第三方库的介绍与简单使用)
  • C++:扫雷游戏
  • 解决正点原子IMX6U开发板Buildroot构建qt根文件系统解压后,没有库文件
  • MySQL数据库初级体验
  • 2025年道路运输安全员考试题库及答案
  • 物流无人机自动化装卸技术解析!
  • Python开发系统
  • 网络接入服务商查询
  • 解决:‘java‘ 不是内部或外部命令,也不是可运行的程序-Java环境变量配置(含JDK8、JDK21安装包一站式配置)