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

运算符

Java中的运算符

算数运算符

这些都是: 加号+ 减号- 乘号* 除号/ 取模%(一个数除以一个数的余数) ++(自增) --(自减)
可以用这些运算符做计算
int num 9527
int ge = num % 10 (个位数取余)
int shi = num / 10 % 10 (十位数取余)
int bai = num / 100 % 10 (百位数取余)
在java中 + 号可以除了可以当做是加法运算以外,还可以当做是字符串的拼接,相当于将多个字符串使用 + 进行了组合,最终返回的结果一定是String类型.
int numA = 10
int numB = 20
System.out.println("numA和numB的和为:"+numA+numB)
输出结果是1020
为什么不是30呢?
因为前面说了字符串使用 + 进行组合,结果会变成String类型,一个字符串加上numA变成了字符串 String 10,String 10再加上20,就变成了String 1020
那怎么才能计算出正确结果呢?
提高计算的优先级就可以了,在numA和numB外面加一个括号,就可以让这两个整数在括号内先进行计算
System.out.println("numA和numB的和为:"+(numA+numB))
输出结果是30
++ 自增(自身加一)
-- 自减(自身减一)
++可以在变量前使用,也可以在变量后使用
++在前面,先+1再使用,++在后面先使用再+1
int d = 10;
d++;
System.out.println(d);
输出结果是11
System.out.println(++d);
输出结果是12
System.out.println(d++);
输出结果是12(但内存里面已经是13了)
System.out.println(d);
输出结果是13

网上有这种很恶心的题
int x = 8, y = 10
++x + --y + y++ - y-- + x++ = ?
最终结果是26
为什么呢?一步步计算就可以了,9+9+9-10+9=26

关系运算符(关系运算符计算的一定是boolean类型)

大于> 小于< 大于等于>= 小于等于<= 不等于!= 等于等于==
int e1 = 10;
int e2 = 11;
boolean bool = e1 > e2;
System.out.println(bool);
输出结果是false

在java中=表示赋值运算符
==号则表示比较的含义
一般用于比较基本数据类型,在基本数据类型中只要值相等,就会返回true
为什么要特别强调一下呢?
因为未来面试题可能会问你,
和equals的区别,这个以后讲

赋值运算符

= += -= *= /= %=
a += b:相当于 a = a + b;(它是一种简写形式)
int f1 = 10
f1 += 20
System.out.println(f1);
输出结果是30
byte b1 = 1 ;
byte b2 = 1 ;
b2 = b1 + b2 ?(正不正确,为什么)
这一问前面都解释过了,不对,会报错,因为byte类型在参与计算之前都会把自己提升为int类型,int是不能直接赋值给byte的
b2 += b1 ?(正不正确,为什么)
对的,这个居然没报错
原因:java内部做了强转

逻辑运算符(逻辑运算符计算的一定是boolean类型)

与 &&(shift+7)
逻辑与的特点:所有的条件都满足结果就返回true,否则就返回false

或 ||(shift+)
逻辑与的特点:有一个条件满足结果就返回true,全部不满足才返回false
(也可以说是,所有的条件都不满足结果就返回false,否则就返回true)

非 !(shift+1)
条件取反:条件为真,则结果就是false
条件取反:条件为假,则结果就是true
一般都用于做一些反向判断
比如说文件存在我就不创建,文件不存在我就创建

注意:在java中&和|也可以用作逻辑运算(这两个符号正式开发中没有用,因为效率低,不如&&和||效率高)
&& 短路与 在整个运算式子中只要有一个结果返回了false,就不会再执行后面的表达式
& 非短路与 不管整个运算式子结果如何,都会把表达式执行完
|| 短路或 在整个运算式子中只要有一个结果返回了true,就不会再执行后面的表达式
| 非短路或 不管整个运算式子结果如何,都会把表达式执行完

三目运算符(简单的可以用三目运算符,复杂的用if语句)

条件表达式 ? 结果1 : 结果2;
如果条件表达式为true,则返回结果1
如果条件表达式为false,则返回结果2

例:如果年龄大于18输出成年人,否则输出未成年人
int age = 10;
String s = age > 18 ? "成年人" : "未成年人";
System.out.println(s);

位运算符(先了解)

http://www.jsqmd.com/news/274802/

相关文章:

  • NLP技术视角下的论文优化:2026主流降重平台算法与效果深度横评 - 品牌观察员小捷
  • MCP协议:LLM智能体的“万能转接器“,解决“一模型一接口“痛点,建议收藏
  • 如何下载Spring源码 - 详解
  • Linux驱动学习:验证MasterDriverDevice三方匹配成功
  • 2. C语言核心语法 - 实践
  • 华为笔记本安装Ubuntu系统,声卡没有声音的处理
  • 基于MP2307设计一个12V到7.5V左右的开关电源
  • 必收藏!基于模板-定理图谱的LLM数学推理增强技术,性能提升超乎想象!
  • 必看!AI架构师珍藏手册:1.5万字深度解析如何把AI关进确定性系统笼子
  • AES加密密钥安全存储、iOS设备管理实现方式Kafka能够实时收集、处理和分析用户行为数据,从而生成动态更新的用户画像AES加密密钥安全存储
  • 中石化加油卡兑换有隐藏玩法,闲置卡这样处理超划算 - 京顺回收
  • ssm228图书预订 网上书城管理系统vue
  • 【GPR回归预测】基于双向长短期记忆神经网络结合高斯过程回归(BiLSTM-GPR)的多变量回归预测 (多输入单输出)附Matlab代码
  • App自动化测试环境搭建(详细版)
  • 文件操作与文件内容操作
  • 大数据领域数据中台的架构设计思路
  • 通过WiFI远程采集导航磁场信号
  • 聊一聊,JMeter分布式性能测试!
  • 告别卡顿与隐私风险!本地文档编辑器 document搭载cpolar,远程办公超丝滑
  • 【干货收藏】LangGraph实战指南:告别LLM幻觉,打造确定性AI工作流
  • Java字符串入门:API入门+String类核心
  • 大数据领域 GDPR 合规性评估方法
  • MonkeyCode+cpolar,让国产 AI 编程助手随时随地用
  • 亲测好用9个AI论文软件,MBA论文写作必备!
  • 强烈安利10个AI论文网站,继续教育学生轻松搞定论文写作!
  • 【Yolactedge】Unbuntu22.04运行Yolactedge推理
  • STM32 标准外设库中关于 GPIO(通用输入输出) 模块的函数声明
  • SSAS - 生成模拟测试数据
  • 数据分类预测总让人头秃,传统BP神经网络容易掉进局部最优解的大坑。今天咱们搞点刺激的——用遗传算法给BP神经网络调参,直接在MATLAB里整活
  • 基于FPGA的图像形态学腐蚀处理Verilog开发与开发板硬件测试