Java 基础-语法-运算符

Java 基础-语法-运算符

概述

种类举例作用
算术运算符+​:加法
-​:减法
*​:乘法
/​:除法
%​:取模(取余数)
用于执行基本的数学运算
增量运算符++​:递增
--​:递减
用于递增或递减变量的值
赋值运算符=​:赋值
+=​:加法赋值
-=​:减法赋值
*=​:乘法赋值
/=​:除法赋值
%=​:取模赋值
用于给变量赋值
比较运算符
==​:等于
!=​:不等于
<​:小于
>​:大于
<=​:小于或等于
>=​:大于或等于
用于比较两个值
逻辑运算符&&​:逻辑与(短路与)
||​:逻辑或(短路或)
!​:逻辑非
用于执行逻辑运算
位运算符&​:按位与
|​:按位或
^​:按位异或
~​:按位取反
<<​:左移位
>>​:右移位
>>>​:无符号右移位
用于对二进制位执行操作
条件运算符(三元运算符)condition ? value1 : value2用于在条件为真时返回一个值,否则返回另一个值

详解

算术运算符

Java 的算术运算符用于执行基本的数学运算。以下是一些算术运算符的示例:

int a = 10;
int b = 3;// 加法
int sum = a + b; // 结果是 13// 减法
int difference = a - b; // 结果是 7// 乘法
int product = a * b; // 结果是 30// 除法
int quotient = a / b; // 结果是 3 (整数相除会截断小数部分)// 取模(取余数)
int remainder = a % b; // 结果是 1// 带有小数的算术运算
double x = 10.5;
double y = 3.0;// 加法
double sumDouble = x + y; // 结果是 13.5// 减法
double differenceDouble = x - y; // 结果是 7.5// 乘法
double productDouble = x * y; // 结果是 31.5// 除法
double quotientDouble = x / y; // 结果是 3.5

增量运算符

Java 中的增量运算符用于递增或递减变量的值。主要有两种增量运算符:递增运算符 ++​ 和递减运算符 --​。这些运算符可用于不同数据类型的变量,如整数、浮点数和字符。以下是它们的原理和示例说明:

int x = 5;
int y = x++; // 先将 x 赋值给 y,然后递增 x
System.out.println("x = " + x); // 输出 6
System.out.println("y = " + y); // 输出 5int a = 8;
int b = --a; // 先递减 a,然后将结果赋值给 b
System.out.println("a = " + a); // 输出 7
System.out.println("b = " + b); // 输出 7
  • 前置递增/递减运算符(++var​ 或 --var​)首先递增或递减变量的值,然后返回新的值。
  • 后置递增/递减运算符(var++​ 或 var--​)首先返回变量的当前值,然后再递增或递减变量的值。

递增和递减运算符通常用于循环、条件语句和其他控制结构中,以方便地增加或减小计数器或变量的值。注意,它们可以对不同类型的变量(整数、浮点数、字符等)使用,并具有不同的行为。在实际编程中,要根据需要选择适当的递增或递减运算符来操作变量。

赋值运算符

赋值运算符用于给变量赋予特定的值。在Java中,有多种赋值运算符,它们用于执行不同类型的赋值操作。以下是一些常见的赋值运算符的示例:

int x = 5; // 将5赋给变量xint count = 10;
count += 3; // 等效于 count = count + 3; 结果是 count 现在为 13double price = 100.0;
price -= 25.0; // 等效于 price = price - 25.0; 结果是 price 现在为 75.0int quantity = 6;
quantity *= 4; // 等效于 quantity = quantity * 4; 结果是 quantity 现在为 24int total = 100;
total /= 5; // 等效于 total = total / 5; 结果是 total 现在为 20int remainder = 15;
remainder %= 7; // 等效于 remainder = remainder % 7; 结果是 remainder 现在为 1

比较运算符

比较运算符用于比较两个值,通常返回一个布尔值(true​ 或 false​)来表示比较的结果。以下是一些常见的比较运算符以及示例:

int a = 5;
int b = 5;
boolean isEqual = (a == b); // 结果是 trueint x = 7;
int y = 3;
boolean isNotEqual = (x != y); // 结果是 trueint m = 10;
int n = 15;
boolean isLessThan = (m < n); // 结果是 truedouble p = 8.0;
double q = 5.0;
boolean isGreaterThan = (p > q); // 结果是 trueint c = 5;
int d = 5;
boolean isLessOrEqual = (c <= d); // 结果是 trueint e = 7;
int f = 5;
boolean isGreaterOrEqual = (e >= f); // 结果是 true

逻辑与运算符

逻辑运算符用于执行布尔逻辑运算,通常用于组合多个布尔表达式的结果。以下是一些常见的逻辑运算符以及示例:

boolean x = true;
boolean y = false;
boolean resultAnd = (x && y); // 结果是 falseboolean a = true;
boolean b = false;
boolean resultOr = (a || b); // 结果是 trueboolean p = true;
boolean resultNotP = !p; // 结果是 false

位运算符

位运算符用于对二进制位执行操作,通常用于处理整数数据的各个位。以下是一些常见的位运算符以及示例:

**按位与运算符 **​ & ​:将两个操作数的每个位进行与运算,只有在两个位都为 1 时,结果才为 1。

int a = 5; // 二进制表示为 0101
int b = 3; // 二进制表示为 0011
int bitwiseAnd = a & b; // 结果是 0001,即 1

**按位或运算符 **​ | ​:将两个操作数的每个位进行或运算,只要两个位中至少有一个为 1,结果就为 1。

int x = 5; // 二进制表示为 0101
int y = 3; // 二进制表示为 0011
int bitwiseOr = x | y; // 结果是 0111,即 7

**按位异或运算符 **​ ^ ​:将两个操作数的每个位进行异或运算,只有当两个位不相同时,结果才为 1。

int m = 5; // 二进制表示为 0101
int n = 3; // 二进制表示为 0011
int bitwiseXor = m ^ n; // 结果是 0110,即 6

**按位取反运算符 **​ ~ ​:反转操作数的每个位,0 变为 1,1 变为 0。

int p = 5; // 二进制表示为 0000 0000 0000 0000 0000 0000 0000 0101
int bitwiseNot = ~p; // 结果是 1111 1111 1111 1111 1111 1111 1111 1010,即 -6

**左移位运算符 **​ << ​:将操作数的二进制位向左移动指定的位数,并在右侧用 0 填充。

int q = 6; // 二进制表示为 0110
int leftShift = q << 2; // 结果是 1100,即 12

**右移位运算符 **​ >> ​:将操作数的二进制位向右移动指定的位数,带符号地扩展左侧的位。带符号的意思是,如果原数是正数,则在左侧补充 0,如果原数是负数,则在左侧补充 1。

int a = 8;  // 二进制 0000 1000
int result = a >> 1;  // 结果是 4,二进制 0000 0100int b = -8; // 二进制 1111 1000
int result = b >> 1; // 结果是 -4,二进制 1111 1100

**无符号右移位运算符 **​ >>> ​:将操作数的二进制位向右移动指定的位数,不带符号地扩展左侧的位。这意味着无论原数是正数还是负数,都在左侧补充 0。

int c = 8;  // 二进制 0000 1000
int result = c >>> 1;  // 结果是 4,二进制 0000 0100int d = -8; // 二进制 1111 1111 1111 1111 1111 1111 1111 1000
int result = d >>> 1; // 结果是 2147483644,二进制0111 1111 1111 1111 1111 1111 1111 1100

位运算符通常用于对位级别的数据操作,特别是在需要执行位操作的底层编程任务中,如位掩码、位控制等。它们通常用于处理整数数据,而不是浮点数。

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

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

相关文章

复杂度(上卷)

前言 在正式进入今天的主题之前&#xff0c;我们不妨先来回顾一下初步学习数据结构后必须知道的概念。&#x1f3b6; 数据结构 数据结构是计算机存储、组织数据的方式&#xff0c;指相互间存在一种或多种特定关系的数据元素的集合。 &#xff08;没有一种单一的数据结构能够…

ServiceDesk Plus再次获得国际认可的粉象认证

我们又一次做到了&#xff01;ServiceDesk Plus 现已获得 CMDB 和发布部署过程的 PinkVERIFY™ &#xff08;粉象&#xff09;认证。 通过PinkVerify 认证&#xff0c;我们现在已经获得了七项核心 IT 服务管理实践&#xff1a; 1、事件管理 2、问题管理 3、变更管理 4、资产管…

探索 Electron:窗口菜单以及生命周期和对话框讲解

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

Python类与对象01

1、理解使用对象完成数据组织的思路 1.1类和对象的基本理解 理解类&#xff1a;从现实世界到编程世界 类由三个部分组成&#xff1a;类名、类的属性、类的方法。类的定义实际上是描述事物的一种方法&#xff0c;在现实世界中&#xff0c;事物都是有属性和行为的。通过类&…

【贪心算法题记录】134. 加油站

题目描述 题目&#x1f517; 初始答案 思路都在注释里&#xff0c;不够超出时间限制了。 class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {/* 首先出发站startIndex获得的汽油要大于前往下一站要消耗的汽油* …

JVM:类加载器

文章目录 一、什么是类加载器二、类加载器的应用场景三、类加载器的分类1、分类2、启动类加载器 四、双亲委派机制五、打破双亲委派机制六、JDK9之后的类加载器 一、什么是类加载器 类加载器&#xff08;ClassLoader&#xff09;是Java虚拟机提供给应用程序去实现获取类和接口…

休息时间c++

题目描述 小杨计划在某个时刻开始学习&#xff0c;并决定在学习k秒后开始休息。 小杨想知道自己开始休息的时刻是多少。 输入 前三行每行包含一个整数&#xff0c;分别表示小杨开始学习时刻的时h、分m、秒s(h&#xff0c;m&#xff0c;s的值符合1≤h≤12,0≤m≤59,0≤s≤59)…

Geoserver源码解读六 插件

系列文章目录 Geoserver源码解读一 环境搭建 Geoserver源码解读二 主入口 Geoserver源码解读三 GeoServerBasePage Geoserver源码解读四 REST服务 Geoserver源码解读五 Catalog Geoserver源码解读六 插件&#xff08;怎么在开发模式下使用&#xff09; 目录 系列文章目…

看番工具 -- oneAnime v1.2.5绿色版

软件简介 OneAnime是一款专为动漫爱好者设计的应用程序&#xff0c;它提供了一个庞大的动漫资源库&#xff0c;用户可以在这里找到各种类型的动漫&#xff0c;包括热门的、经典的、新番的等等。OneAnime的界面设计简洁明了&#xff0c;操作方便&#xff0c;用户可以轻松地搜索…

C++系列-Vector(一)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” Vector的介绍及使用 Vector的介绍 当vector构建的参数类型为char类型时&#xff0c;它是和string是极其类似的&#xff0c;但是二者之间也有不同&#xff0c;比如&#xff0c…

[C++] 模拟实现list(二)

标题&#xff1a;[C] 模拟实现list&#xff08;二&#xff09; 水墨不写bug 目录 &#xff08;一&#xff09;回顾 &#xff08;二&#xff09;迭代器类的封装设计 &#xff08;1&#xff09;成员函数简要分析 &#xff08;2&#xff09;const迭代器类的设计 &#xff08;…

二四、3d人脸构建

一、下载github项目3dmm_cnn-master https://github.com/anhttran/3dmm_cnn.git 一个使用深度神经网络从单个图像进行 3D 人脸建模的项目,端到端代码,可直接根据图像强度进行 3D 形状和纹理估计;使用回归的 3D 面部模型,从检测到的面部特征点估计头部姿势和表情。…

19185 01背包问题

解决这个问题的关键是使用动态规划的方法。我们可以创建一个二维数组dp[i][j]&#xff0c;其中i表示考虑前i件物品&#xff0c;j表示背包的容量。dp[i][j]的值表示在考虑前i件物品&#xff0c;且背包容量为j时能获得的最大价值。 ### 算法步骤 1. 初始化一个二维数组dp&#x…

机器学习(五) -- 监督学习(7) --SVM2

系列文章目录及链接 上篇&#xff1a;机器学习&#xff08;五&#xff09; -- 监督学习&#xff08;7&#xff09; --SVM1 下篇&#xff1a; 前言 tips&#xff1a;标题前有“***”的内容为补充内容&#xff0c;是给好奇心重的宝宝看的&#xff0c;可自行跳过。文章内容被“文…

ABAQUS大连正版代理商:亿达四方——开启东北工业智能仿真新篇章

在东北老工业基地的振兴道路上&#xff0c;大连以其独特的地理位置和深厚的产业基础&#xff0c;成为推动区域经济发展的领头羊。作为国际知名的仿真软件ABAQUS在大连地区的官方授权代理商&#xff0c;亿达四方正以科技创新为驱动&#xff0c;引领当地制造业迈向数字化、智能化…

SD卡讲解

SD 卡 (Secure Digital Memory Card) 在我们生活中已经非常普遍了&#xff0c;控制器对 SD 卡进行读写通信 操作一般有两种通信接口可选&#xff0c;一种是 SPI 接口&#xff0c;另外一种就是 SDIO 接口。SDIO 全称是安全数 字输入/输出接口&#xff0c;多媒体卡 (MMC)、SD 卡、…

stm32使用pwm和编码器模式(包含重映射)

Dri_TIM.c #include "Dri_TIM.h"/*** description: TIM4初始化&#xff0c;pwm模式* return {*}*/ void Dri_TIM4_Init() {/* 1. 开启时钟*//* 1.1 定时器4的时钟 */RCC->APB1ENR | RCC_APB1ENR_TIM4EN;/* 1.2 GPIO的时钟 PB */RCC->APB2ENR | RCC_APB2ENR_I…

【Python实战因果推断】30_双重差分1

目录 Panel Data 在讨论了干预效果异质性之后&#xff0c;是时候转换一下思路&#xff0c;回到平均干预效果上来了。在接下来的几章中&#xff0c;您将学习如何利用面板数据进行因果推断。 面板数据是一种跨时间重复观测的数据结构。在多个时间段观察同一单位&#xff0c;可以…

PyTorch中的CPU和GPU代码实现详解

PyTorch中的CPU和GPU PyTorch中的CPU和GPU代码实现详解1. 安装PyTorch2. 编写支持CPU和GPU的PyTorch代码2.1 模型定义2.2 数据加载2.3 将模型和数据移动到GPU2.4 训练循环 3. 关键步骤详解**3.1 定义设备****3.2 模型和数据移动到GPU****3.3 优化器和损失函数** 4. 完整代码示例…

构建实时银行应用程序:英国金融机构 Nationwide 为何选择 MongoDB Atlas

Nationwide Building Society 超过135年的互助合作 Nationwide Building Society&#xff08;以下简称“Nationwide”&#xff09; 是一家英国金融服务提供商&#xff0c;拥有超过 1500 万名会员&#xff0c;是全球最大的建房互助会。 Nationwide 的故事可以追溯到 1884 年&am…