2. 运算符和表达式

2. 运算符和表达式

​ 在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。

​ 当参与/运算时,两个操作数都是整数时,表示整除法;否则表示浮点除法。

​ 整数的求余操作(取模)用%表示。例如:15/2=7,15%2=1,15.0/2=7.5。

​ 值得注意,整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN的结果

算数运算符说明
*乘×
/除÷
%取余数

2.1 数学函数与常量

​ 在Math类中,包含了各种各样的数学函数,在编写不同类别的程序时,可能需要的函数也不同。

想计算一个数值的平方根,可以使用sqrt方法:

double x = 4;
double y = Math.sqrt(x);
System.out.println(y);

输出为:2.0

​ 在Java中,没有幂运算,因此需要借助于Math类的pow方法:

double y = Math.pow(x, a);

​ 将y的值设为x的a次幂( x a x^a xa)。

​ pow方法有两个double类型的参数,其返回结果也为double类型。

  • Math类还提供了常用的三角函数:

    • Math.sin;

    • Math.cos;

    • Math.tan;

    • Math.atan;

    • Math.atan2;

  • 指数函数以及它的反函数,自然对数以及10为底的对数:

    • Math.exp;
    • Math.log;
    • Math.log10;
  • 两个用于表示 π 和 e \pi和e πe常量的近似值:

    • Math.PI
    • Math.E

​ 如果不想再数学方法名和常量名前添加前缀"Math",只需要在源文件的顶部添加代码:

import static java.lang.Math.*;

2.2 结合赋值和运算符

​ 可以在赋值中使用二元运算符,这是一种便捷的简写形式:

x += 4;
//等价于
x = x + 4;

(一般地,将运算符放在=号的左边,如*=或%=)

2.3 自增与自减运算符

​ 自增、自减运算符:n++将变量n的当前值加1,n–将n的值减1。

int n = 12;
n++; //自增后,n=13

​ 这些运算符只会改变变量的值,它们的操作数不能是数值。例如:4++是个非法语句。

​ 自增与自减运算符还有一种“前缀”形式:++n,–n;后缀和前缀形式都会使变量值加1或减1。在表达式中,前缀形式会先完成加1,而后缀形式会先使用变量原来的值

int m = 7;
int n = 7;
int a = 2 * ++m; // a=16,m=8
int b = 2 * n--; // b=14,n=8

2.4 关系和boolean运算符

  • 要检测相等性可以使用两个等号==:
3 == 7 //返回false
  • 检测不相等就使用!=:
3 != 7 //返回true
  • 经常使用的运算符还有:<小于,>大于,<=小于等于,>=大于等于;

  • 感叹号!就是逻辑运算符,运算符&&表示逻辑**“与“运算符,运算符||表示逻辑”或“**运算符;

expression1 && expression2 

​ expression1和expression2计算返回的结果都为true时,整个表达式才会返回true;

​ 若expression1和expression2计算返回的结果其中一个为false时,整个表达式返回的结果为false。

expression1 || expression2

​ 若expression1返回true则不计算expression2,将整个表达式的结果返回true;

​ 若expression1返回false,计算expression2返回true,整个表达式结果也将会返回true;

​ 若expression1和expression2的返回结果都是false,那整个表达式结果也将返回false。

  • 三目运算符x?y:z,当x返回结果为true时就返回y,当x返回结果为false时就返回z。
x < y ? x : y

将会返回x和y中较小的一个。

2.5 位运算符

​ 处理整数类型时,可以直接对组成整型数值的各个位完成操作。位运算符包括:&(“and”)、|(“or”)、^(“xor”)、~(“not”)。另外还有>>和<<运算符将位模型左移或右移。

2.6 括号与运算符级别

运算符优先级:

结合性运算符
从左往右()括号
从右往左! ~ ++ – + 一元运算 - 一元运算 ()强制类型转换 new
从左往右* / %
从左往右+ -
从左往右<< >> >>>
从左往右< <= > >=
从左往右== !=
从左往右&
从左往右^
从左往右|
从左往右&&
从左往右||
从右往左?:
从右往左= += -= *= /= %= &= |= ^= <<= >>= >>>=

​ 若不适用括号,就按照给出的运算符优先级次序进行计算。同一个级别的运算符按照从左到右的次序进行计算(除了表中给出的右结合运算符外)。

参考资料

[1] 《Java核心技术 卷I 基础知识》 ------【美】凯S. 霍斯特曼

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求解器的可行解存在一个允许的误差范围

在模型计算中&#xff0c;由于浮点计算的存在&#xff0c;包括数学建模当中常用的大M法等&#xff0c;都可能会使得结果存在轻微偏离预期的情况。然而&#xff0c;对于一些一定范围内的轻微偏移&#xff0c;我们常常是能够接受的&#xff0c;因为这些轻微的偏移能通过简单的调整…

听力句子100

[ 30 ] Now, you are going to be working on / writing a series of music lessons / for very young children. 现在&#xff0c;你将为年幼的孩子们编写一系列音乐课程 As before, youll be basing / the degin of your lessons / on the existing research / into how c…

苏州和数荣获苏州市软件行业协会“杰出贡献理事单位”

2023年12月14日&#xff0c;苏州市软件行业协会第五届第五次理事会议在金螳螂大厦顺利召开。 苏州市工信局副局长万资平&#xff0c;苏州市工信局大数据处处长卢剑荣&#xff0c;苏州市工信局大数据处丁天龙&#xff0c;江苏省软件行业协会副秘书长夏冰莹&#xff0c;苏州市软…

【SpringBoot快速入门】(2)SpringBoot的配置文件与配置方式详细讲解

之前我们已经学习的Spring、SpringMVC、Mabatis、Maven&#xff0c;详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例&#xff0c;上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动&#xff0c;从这一节开始&#xff0c;我们开始学习SpringBoot…

SpringSecurity深度解析与实践(1)

目录 引言1. SpringSecurity1.1 SpringSecurity简介1.2 SpringSecurity工作原理1.3.特点 2. SpringSecurity的快速使用总结 引言 SpringSecurity作为Spring框架中的一个重要组成部分&#xff0c;扮演着保护应用程序安全的重要角色。本文将深入探讨SpringSecurity的原理、使用方…

logging模块

【 一 】前言 logging 模块是 Python 中用于记录日志信息的标准库模块。通过使用 logging 模块&#xff0c;你可以在应用程序中设置日志记录以追踪代码执行、错误报告等信息。 debug : 打印全部的日志( notset 等同于 debug )info : 打印 info, warning, error, critical 级别的…

Playground AI刚刚推出了它的新宠儿——Playground V2,去试试?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Vue 异步组件:提升应用性能与加载速度

Vue.js 是一款流行的 JavaScript 框架&#xff0c;其中异步组件是优化大型应用性能的重要工具之一。通过异步组件&#xff0c;我们可以按需加载和渲染组件&#xff0c;提高应用的加载速度和用户体验。本文将深入探讨 Vue 异步组件的概念、使用方法以及如何在实际项目中有效地应…

react useState异步问题

1. useState执行后 不能立马拿到新的数据&#xff0c;下次更新绘图就可以拿到了 然后当执行完第一次render时候&#xff0c;比如去点击按钮啥的执行某个方法这个时候就可以拿到数据了 例子&#xff1a; const UseState () > { // 函数组件中没有this const [count, setCou…

vlan的通信(hcia)

有两种情况 第一种 vlanif的接口 VLANIF接口&#xff1a;VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置P地址 后&#xff0c;没备会在MAC地址表中添加VLANIF接口的MAC地址VD表项&#xff0c;并且为表项的 三层转发标志位置位。当报文的目的MAC地址匹配该表项后&a…

Linux-----17、软件包管理

# 软件包管理 # 1、软件包分类 # ㈠ 软件包类型 二进制包源码包 # ① 二进制包 什么是二进制包&#xff1f;有什么特点&#xff1f; 二进制包&#xff0c;指的是已经 1 好了的软件包&#xff0c;只需要直接安装就可以使用。二进制包&#xff0c;不需要编译&#xff0c;直接…

1280:【例9.24】滑雪

【解题思路】 1. 状态定义 状态定义&#xff1a;dp[i][j]&#xff1a;从(i,j)出发的所有路线中&#xff0c;长度最长的路线的长度。 2. 状态转移方程 记第(i,j)位置的高度为a[i][j]。 集合&#xff1a;从(i,j)出发的所有路线 分割集合&#xff1a;根据下一步可以到达的位置分割…

.locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

尊敬的读者&#xff1a; .locked1、locked勒索病毒&#xff0c;一股数字时代的黑暗势力&#xff0c;以其狡猾手法而令人闻风丧胆。这种勒索软件通过各种途径悄悄渗透用户计算机&#xff0c;随后迅速将重要的数据文件加密&#xff0c;使其变成数字迷宫的密码锁。随后&#xff0…

计算机msvcr120.dll文件丢失怎样修复,只需简单3步即可

在使用电脑过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“缺少某个.dll文件”&#xff0c;“找不到msvcr120.dll文件”。那么&#xff0c;msvcr120.dll文件到底是什么呢&#xff1f;当我们遇到这个问题时应该如何解决呢&#xff1f;本文将详细介…

VTK显示六棱柱

这个就是稍微复杂一点的程序&#xff0c;但是vtk的和qt的图形视图框架十分类似&#xff0c;qt里有视图、图元、场景&#xff0c;而vtk里恰好也有这些 #include "vtkSmartPointer.h" #include "vtkRenderWindow.h" #include "vtkRenderer.h" #in…

力扣题目学习笔记(OC + Swift) 13. 罗马数字转整数

罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;…

5252D 5G基站测试仪

01 5252D 5G基站测试仪 产品综述&#xff1a; 5252D多通道综测仪打破了信号发生器进行信号发射、频谱分析仪进行观看频域波形的测试方案&#xff0c;将信号收发融为一体&#xff0c;推动无线通信测试进入全新时代。其独具的多通道收发一体、高性能、全方位测试能力及直观操作…

凯斯西储大学轴承数据解读

文章目录 一、凯斯西储大学轴承数据基础知识&#xff1f;1.1 故障种类1.2 故障点尺寸&#xff08;单点故障&#xff09;1.3 载荷和转速 二、数据解读2.1 文件2.2 以12k Drive End Bearing Fault Data为例2.3 以&#xff08;0.007&#xff0c;inner race)为例。 3 Normal Baseli…

爬虫scrapy管道的使用

爬虫scrapy管道的使用 学习目标&#xff1a; 掌握 scrapy管道(pipelines.py)的使用 之前我们在scrapy入门使用一节中学习了管道的基本使用&#xff0c;接下来我们深入的学习scrapy管道的使用 1. pipeline中常用的方法&#xff1a; process_item(self,item,spider): 管道类中…

计算机组件操作系统BIOS的相关知识思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、运维实施工程师需要具备的知识 1、运维工程师、实施工程师是啥&#xff1f; 2、运维工程师、实施工…