【JAVASE】运算符(一)

简介: 【JAVASE】运算符

1. 什么是运算符


计算机的最基本的用途之一就是执行数学运算,比如:


int a = 10;
int b = 20;
a + b;
a < b;

上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。


作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符**(+ - * /)、关系运算符(< > ==)**、逻辑运算符、位运算符、移位运算符以及条件运算符等。


2. 算术运算符


1. 基本四则运算符:加减乘除模(+ - * / %)


int a = 20;
int b = 10;
System.out.println(a + b); 
System.out.println(a - b); 
System.out.println(a * b); 
System.out.println(a / b);
System.out.println(a % b); // % 模运算相当于数学中除法的余数

运行结果:


faa9cac423ccca5300e6cbdc007b1169_86bac3dda6b94b9cb9ffff3c96097b4e.png


注:


  • 上述都是二元运算符,使用时必须要有左右两个操作数


int / int 结果还是int类型,而且会向下取整

请看这段代码:


int a = 3;
int b = 2;
System.out.println(a / b);

运行结果:

0d8fbfa016ec4e5089c1d2e69ef60eb5_253d086bbd974ad299f7b06998773e1d.png


有些人可能会好奇,3/2 应该是 1.5 ,这里的输出结果为什么是 1 ,这是因为 int / int 结果还是int类型,而且会向下取整,即小数点之后全部舍弃掉了。


如果要得到 1.5 ,应该这样修改:


8604f35e8fa41107ffc77c5ae695dd09_eda681166e624cfd98d62f87c3eccb6c.png


在做除法和取模时,右操作数不能为0


例如:


int a = 1;
int b = 0;
System.out.println(a / b)

运行结果:


daca83ed42c3cfc265372806b99079cd_e392471a279f4b98ade869f99b93bd8b.png


% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的


System.out.println(11.5 % 2.0)

68309c3ce0e939824dfe7c15122a661f_65c7d8fcce2b46979d53aec033ae5cf1.png


我们已经知道这些运算符的运算规则了,看看下面计算,你能做对吗?

System.out.println(5/2);
System.out.println((float)5/2);
System.out.println(5/(float)2);
System.out.println((float)(5/2));
System.out.println(10%3);
System.out.println(-10%3);
System.out.println(10%-3);
System.out.println(-10%-3);

答案 ↓ :

aa4a44abcfa216c69a30fcc989000815_7d3833efe77a4a2c8cca0a3a089fb620.png


当两侧操作数类型不一致时,会向类型大的提升


System.out.println(1+0.2); 

这里 + 的左侧是 int ,右侧是 double ,在加之前 int 会被提升为 double ,所以输出结果是 1.2


*2. 增量运算符 += -= = %=

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。


int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3; // 相当于 a = a % 2
System.out.println(a); // 输出2

只有变量才能使用该运算符,常量不能使用。


3. 自增/自减运算符 ++ –

++是给变量的值+1,–是给变量的值-1。


int a = 1;
a++; // 后置++ 表示给a的值加1,此时a的值为2
System.out.println(a++); // 注意:后置++是先使用变量原来值,表示式结束时给变量+1,因此输出2
System.out.println(a); // 输出3
++a; // 前置++ 表示给a的值加1
System.out.println(++a); // 注意:前置++是先给变量+1,然后使用变量中的值,因此输出5
System.out.println(a); // 输出5
// -- 操作符给操作-1,与++含义类似

fc5fc99932b96f176d3af82aa31ec62d_379126af98504d58ac528cc303cae5fb.png

注:


  • 如果单独使用,【前置++】和【后置++】没有任何区别
  • 如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1
  • 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

相关文章
|
11月前
|
机器学习/深度学习 传感器 人工智能
穹彻智能-上交大最新Nature子刊速递:解析深度学习驱动的视触觉动态重建方案
上海交大研究团队在Nature子刊发表论文,提出基于深度学习的视触觉动态重建方案,结合高密度可拉伸触觉手套与视觉-触觉联合学习框架,实现手部与物体间力量型交互的实时捕捉和重建。该方案包含1152个触觉感知单元,通过应变干扰抑制方法提高测量准确性,平均重建误差仅1.8厘米。实验结果显示,其在物体重建的准确性和鲁棒性方面优于现有方法,为虚拟现实、远程医疗等领域带来新突破。
303 32
|
9月前
|
运维 安全 数据可视化
如何选择高效教务系统?推荐“一秒教务”——独立部署、即开即用,功能全面覆盖
本文探讨如何选择高效的教务系统,并重点推荐“一秒教务”。该系统支持独立部署,保障数据安全;功能全面覆盖招生、排课、考勤、财务等环节;界面简洁易用,部署快速。适用于K12学校、培训机构、职业教育等多种场景,对比传统系统优势明显,如即开即用、扩展性强。文章还提供了选型建议和落地步骤,助力教育机构实现高效管理与数字化转型。
302 0
|
SQL 人工智能 DataWorks
DataWorks:新一代 Data+AI 数据开发与数据治理平台演进
本文介绍了阿里云 DataWorks 在 DA 数智大会 2024 上的最新进展,包括新一代智能数据开发平台 DataWorks Data Studio、全新升级的 DataWorks Copilot 智能助手、数据资产治理、全面云原生转型以及更开放的开发者体验。这些更新旨在提升数据开发和治理的效率,助力企业实现数据价值最大化和智能化转型。
2829 7
|
存储 监控 Linux
如何在 CentOS 7 中进行磁盘分区和挂载,帮助读者掌握这一技能。
【10月更文挑战第9天】随着业务扩展和技术进步,服务器硬盘容量需求不断增加。本文通过具体案例,详细介绍如何在 CentOS 7 中进行磁盘分区和挂载,帮助读者掌握这一技能。假设有一台 CentOS 7 服务器,配备了一块 1TB 的未分配硬盘,我们将这块硬盘分成两个分区,分别用于存储日志文件和用户上传的文件。文章详细介绍了如何使用 `fdisk` 和 `mkfs` 命令进行分区和格式化,以及如何创建挂载点并永久挂载分区。此外,还提供了实践经验和注意事项,确保操作的安全性和有效性。
252 1
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第13天】
479 2
|
移动开发 JavaScript 前端开发
HTML5 服务器发送事件(Server-Sent Events)详解
**服务器发送事件(Server-Sent Events, SSE)** 是一种用于构建单向实时通信的技术,允许服务器主动向客户端(通常是浏览器)推送更新。SSE 提供了一个简单的 API,非常适合实时应用,如新闻更新、天气变化、社交媒体通知等。SSE 基于 HTTP 协议,通过长连接实现数据传输。其主要优点包括简洁的 API、持久连接和自动重连功能。大多数现代浏览器都内置了对 SSE 的支持。通过简单的服务器端和客户端代码,可以轻松实现数据的实时推送和接收。
|
机器学习/深度学习 人工智能 自然语言处理
【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 问题分析及Python 代码实现
本文介绍了2024泰迪杯C题“竞赛论文的辅助自动评阅”的问题分析和Python代码实现,涵盖了论文质量特征构造、自动评分模型建立以及如何利用自然语言处理技术和大语言模型进行论文自动评阅的方法。
354 2
【2024泰迪杯】C 题:竞赛论文的辅助自动评阅 问题分析及Python 代码实现
Anaconda在开始菜单找不到Anaconda command prompt入口
这篇文章提供了解决Anaconda安装后在开始菜单找不到Anaconda command prompt入口问题的步骤,通过运行命令`python .\\Lib\_nsis.py mkmenus`重新创建Anaconda的开始菜单快捷方式。
Anaconda在开始菜单找不到Anaconda command prompt入口
|
存储 Linux Serverless
深入理解Linux虚拟内存管理(六)(上)
深入理解Linux虚拟内存管理(六)
246 0
|
JavaScript 前端开发 安全
TypeScript的主要优势有哪些?
【6月更文挑战第1天】TypeScript的主要优势有哪些?
393 9