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

Java赋值运算符(=)

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。

其语法格式如下所示:

变量名称=表达式内容

在 Java 语言中,“变量名称”和“表达式”内容的类型必须匹配,如果类型不匹配则需要自动转化为对应的类型。

赋值运算符的优先级低于算术运算符,结合方向是自右向左;不是数学中的等号,它表示一个动作,即将其右侧的值送到左侧的变量中(左侧只允许是变量,不能是表达式或其他形式);不要将赋值运算符与相等运算符“==”混淆。

赋值运算符与其他运算符一起使用,可以表达多种赋值运算的变异效果。例如,在基本的赋值运算符的基础之上,可以结合算术运算符,以及后面要学习的位运算符,组合成复合的赋值运算符。赋值运算符和算数运算符组成的复合赋值运算的含义及其使用实例如表 1 所示。
 

表 1 赋值运算符和算数运算符组成的复合赋值运算的含义及其使用实例
运算符含义实例结果
+=将该运算符左边的数值加上右边的数值, 其结果赋值给左边变量本身int a=5; a+=2;a=7
-=将该运算符左边的数值减去右边的数值, 其结果赋值给左边变量本身int a=5; a-=2;a=3
*=将该运算符左边的数值乘以右边的数值, 其结果赋值给左边变量本身int a=5; a*=2;a=10
/=将该运算符左边的数值整除右边的数值, 其结果赋值给左边变量本身int a=5; a/=2;a=2
%=将该运算符左边的数值除以右边的数值后取余,其结果赋值给左边变量本身int a=5; a%=2;a=1


在大型程序中,灵活运用这些赋值运算符可以提高程序的易读性,并且使程序更加容易保护。下面是一些使用赋值运算符的示例。

 
  1. int x, y, z; // 定义3个整型的变量
  2. x = y = z = 5; // 为变量赋初值为5
  3. x += 10; // 等价于x=x+10,结果x=15
  4. y -= 3; // 等价于y=y-3,结果y=2
  5. z *= 5; // 等价于z=z*5,结果z=25
  6. x /= 4; // 等价于x=x/4,结果x=3
  7. z %= x; // 等价于z=z%x,结果z=1
例 1

例如,一件商品的单价从 10.25 元降了 1.25 元,而自己购买的数量由原来的两个增加到 10 个,可以使用复合赋值运算符来计算购买商品的总价。

实现代码如下:

 
  1. public static void main(String[] args) {
  2.     double price = 10.25; // 定义商品的单价,赋值为10.25
  3.     double total = 0; // 定义总价初始为0
  4.     int count = 2; // 定义购买数量,赋值为2
  5.     price -= 1.25; // 减去降价得到当前单价
  6.     count *= 5; // 现在需要购买10个,即原来数量的5倍
  7.     total = price * count; // 总价=当前单价*数量
  8.     System.out.printf("商品当前的单价为:%4.2f \n", price); // 输出当前单价
  9.     System.out.printf("购买商品的数量为:%d \n", count); // 输出购买数量
  10.     System.out.printf("总价为:%4.2f \n", total); // 输出总价
  11. }

保存代码并运行,输出的结果如下:

运行结果


图 1  运行结果


注意:虽然 Java 支持这种一次为多个变量赋值的写法,但这种写导致程序的可读性降低,因此不推荐这样写。

在该程序中,表示商品单价的 price 变量值为 10.25,而现在降了 1.25,在原来的基础上减去 1.25 即可获取现在的单价。而原来购买的数量为两个,现在需要购买 10 个,可以使用“count*=5”将数量乘以 5 倍之后的值赋值给 count 本身。

赋值运算符还用于将表达式的值赋给变量,如下代码是正确的。

double d1 = 12.34
double d2 = d1 + 5; // 将表达式的值赋给d2
System.out.println(d2); // 输出 d2 的值,将输出 17.34

赋值运算符还可与其他运算符结合,扩展成功能更加强大的赋值运算符。

相关文章:

Java赋值运算符(=)

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“”,它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。 其语法格式如下所示: 变量名称表达式内容 在 Java 语言中,“变量名称”和“表达式…...

提升药店效率:山海鲸医药零售大屏的成功案例

在医药行业中,特别是医药零售领域,高效的药品管理和客户服务至关重要。随着科技的飞速发展,数字化解决方案已经成为提高医药零售管控效率的有效工具之一。其中,医药零售管控大屏作为一种强大的工具,正在以独特的方式改…...

使用Fragement(碎片)

一、Fragment简介 屏幕大小的差距可能会使同样的界面在不同设备上显示出不同的效果,为了能同时兼顾到手机和平板电脑的开发,从Android3.0版本开始提供了Fragment。 Fragment(碎片)是一种嵌入在Activity中的UI片段,它…...

种花问题(Python题目)

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 …...

STM32入门F4

学习资料:杨桃电子,官网:洋桃电子 | 杜洋工作室 www.doyoung.net 嵌入式开发核心宗旨:以最适合的性能、功能、成本来完成最有性价比的产品开发。 1.为什么要学F407 STM32F103系列与STM32F407系列对照表: 2.F4系列命…...

【30】c++设计模式——>状态模式

状态模式概述 状态模式是一种行为型设计模式,它可以让一个对象在其内部状态发生变化时更改其行为。通过将每个状态封装成一个独立的类,我们可以使状态之间互相独立,并且使得状态的切换变得更加灵活、可扩展。(多个状态之间可以相…...

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费

中文编程开发语言编程实际案例:程序控制灯电路以及桌球台球室用这个程序计时计费 上图为:程序控制的硬件设备电路图 上图为:程序控制灯的开关软件截图,适用范围比如:台球厅桌球室的计时计费管理,计时的时候…...

【python】高斯日记

题目: """ 题目描述: 高斯出生于1777年4月30日,记作1777-4-30。在此基础上,我们希望你写一个程序,给定一个数字n,表示从高斯出生的那天算起的第n天,输出这一天的具体日期。例如&…...

[论文笔记]MobileBERT

引言 今天带来一篇关于量化的论文MobileBERT,题目翻译过来是:一种适用于资源有限设备的紧凑型任务无关BERT模型。模型的简称是MobileBERT,意思是作者的这个BERT模型可以部署到手机端。 本篇工作,作者提出了MobileBERT用于压缩和加速BERT模型。与原始BERT一样,MobileBERT…...

【Spring Cloud】如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

文章目录 1. 版本选择2. 用脚手架快速生成微服务的pom.xml3. 创建一个父工程4. 代码地址 本文描述如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。 1. 版本选择 我们知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本选择一致性非常重…...

Power BI 傻瓜入门 1. 数据分析术语:Power BI风格

本章内容包括: 了解Power BI可以处理的不同类型的数据了解您的商业智能工具选项熟悉Power BI术语 数据无处不在。从你醒来的那一刻到你睡觉的时候,某个系统会代表你收集数据。即使在你睡觉的时候,也会产生与你生活的某些方面相关的数据。如…...

【C++和数据结构】位图和布隆过滤器

目录 一、位图 1、位图的概念 2、位图的实现 ①、基本结构 ②、set ③、reset: ④、test ⑤、问题: ⑥、位图优缺点及应用: ⑦、完整代码及测试 二、布隆过滤器 1、布隆过滤器的提出 2、布隆过滤器的实现 ①、基本结构 ②…...

Mybatis分页

本文主要讲解Mybatis分页相关的技术分享,如果觉得不错的话,就点个赞吧。。。。 Mybatis分页主要有2种类型: 一、物理分页: 1、定义: 物理分页是在数据库层面进行的分页,即通过SQL语句直接从数据库中查询…...

手写SVG图片

有时候QT中可能会需要一些简单的SVG图片,但是网上的质量参差不齐,想要满意的SVG图片,我们可以尝试直接手写的方法. 新建文本文档,将以下代码复制进去,修改后缀名为.svg,保存 <?xml version"1.0" encoding"utf-8"?> <svg xmlns"http://www…...

LVS负载均衡及LVS-NAT模式

一、集群概述 1.1 集群的背景 集群定义&#xff1a;为解决某个特定问题将多个计算机组合起来形成一个单系统 集群目的&#xff1a;为了解决系统的性能瓶颈 集群发展历史&#xff1a; 垂直扩展&#xff1a;向上扩展&#xff0c;增加单个机器的性能&#xff0c;即升级硬件 水…...

【Java集合类面试八】、 介绍一下HashMap底层的实现原理

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; 介绍一下HashMap底层的…...

linux 安装操作 redis

1、redis概述和安装 1.1、安装redis 1. 下载redis 地址 https://download.redis.io/releases/ 2. 将 redis 安装包拷贝到 /opt/ 目录 3. 解压 tar -zvxf redis-6.2.1.tar.gz4. 安装gcc yum install gcc5. 进入目录 cd redis-6.2.16. 编译 make7. 执行 make install 进…...

博客后台模块续更(五)

十一、后台模块-菜单列表 菜单指的是权限菜单&#xff0c;也就是一堆权限字符串 1. 查询菜单 1.1 接口分析 需要展示菜单列表&#xff0c;不需要分页。可以针对菜单名进行模糊查询。也可以针对菜单的状态进行查询。菜单要按照父菜单id和orderNum进行排序 请求方式 请求路径…...

手写一个PrattParser基本运算解析器4: 简述iOS的编译过程

点击查看 基于Swift的PrattParser项目 iOS项目的编译过程与PrattParser解析器 前面三篇我们看到了PrattParser解析器的工作原理, 工作过程, 我们了解到PrattParser解析器实际上是模拟了编译过程中的 词法分析 、语法分析 、语义分析 、 中间代码生成 这几个编译前端过程. 那么P…...

【Java集合类面试六】、 HashMap有什么特点?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;HashMap有什么特点&…...

AudioSeal部署教程:NVIDIA Container Toolkit集成与GPU容器化运行验证

AudioSeal部署教程&#xff1a;NVIDIA Container Toolkit集成与GPU容器化运行验证 1. 项目概述 AudioSeal是Meta开源的专业级语音水印系统&#xff0c;专门用于AI生成音频的检测和溯源。这个工具能够在音频中嵌入和检测数字水印&#xff0c;就像给音频文件打上独特的"指…...

让静态图片活起来:EasyAnimateV5图生视频模型快速体验报告

让静态图片活起来&#xff1a;EasyAnimateV5图生视频模型快速体验报告 1. 开篇&#xff1a;一张图&#xff0c;六秒钟&#xff0c;让想象力动起来 你有没有想过&#xff0c;手机相册里那些定格的美好瞬间&#xff0c;如果能像电影一样动起来&#xff0c;会是什么样子&#xf…...

LPC55S69嵌入式FAT文件系统实战:SDIO+FatFs+FreeRTOS集成指南

1. 项目概述example-filesystem-lpc55是 NXP 官方为 LPC55S69 微控制器提供的一个完整、可运行的文件系统示例工程&#xff0c;其核心目标是验证并演示如何在资源受限的 Cortex-M33 嵌入式平台上&#xff0c;利用片上 SDIO 外设驱动板载 microSD 卡&#xff0c;并构建稳定可靠的…...

【大模型】Timer模型微调实战:从零到一构建电力负荷预测系统

1. Timer模型与电力负荷预测的完美结合 电力负荷预测是能源管理中的核心问题&#xff0c;准确预测未来用电量对电网调度、发电计划制定至关重要。传统方法如ARIMA、Prophet在处理复杂时序模式时往往力不从心&#xff0c;而大模型时代的到来为这一领域带来了全新解决方案。 Time…...

理解“可观测性”(Observability)的三大支柱

在当今复杂的分布式系统和微服务架构中&#xff0c;"可观测性"&#xff08;Observability&#xff09;已成为确保系统稳定运行的关键能力。与传统的监控不同&#xff0c;可观测性强调通过系统输出来推断内部状态&#xff0c;其核心依赖于三大支柱&#xff1a;日志&am…...

Linux I/O 演进史:从管道到零拷贝,一篇串起个服务端核心原语右

前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时&#xff0c;输出结果中包含大量由集群自动生成的元数据&#xff08;如 managedFields、resourceVersion、uid 等&#xff09;。这些信息在实际复用 yaml 清单时需要手动清理&#xff0c;增加了额外的工作量。 使用 kube…...

AI未来3-5年十大核心方向

基于对人工智能领域趋势的分析&#xff0c;未来3-5年&#xff0c;以下十个核心方向将深刻影响技术演进与社会变革。1. 多模态大模型与全能模型 (Omni-Multimodal Models)技术发展&#xff1a;多模态预训练大模型将成为AI技术栈的标配&#xff0c;能够无缝理解和生成文本、图像、…...

【单片机】架构设计

以上只是理想架构&#xff0c;或者说和RT-Thread一样&#xff0c;实际做项目往这个上面靠即可。...

当AI学会编程,我们还能做什么邑

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

ECharts甘特图实战:5步搞定项目进度可视化(附完整代码)

ECharts甘特图实战&#xff1a;5步搞定项目进度可视化&#xff08;附完整代码&#xff09; 项目管理中&#xff0c;清晰直观的进度展示往往能事半功倍。ECharts作为国内领先的数据可视化库&#xff0c;其强大的定制能力可以轻松实现专业级甘特图。本文将手把手带你从零开始&…...