技艺高超的魔法师:Java运算符

news2025/1/18 21:03:14

在Java编程的世界里,运算符是连接变量和表达式的关键纽带,它们使得程序能够执行计算、比较、赋值等一系列操作。

一,基本概念

1,运算符是什么?

运算符是操作变量的符号。

2,分类

Java中的主要运算符类型:

  • 算术运算符
  • 自增自减运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 三元运算符

在这里插入图片描述

每部分内容都将结合代码实例和注意事项,帮助读者更好地理解和应用这些基础而又强大的工具。

二,运算符详解

1. 算术运算符

算术运算符用于执行基本的数学运算,如加、减、乘、除等。Java中的算术运算符包括:

  • +(加)
  • -(减)
  • *(乘)
  • /(除)
  • %(取模)
  • ++(自增,稍后讨论)
  • --(自减,稍后讨论)

代码实例

int a = 9;
int b = 5;

int sum = a + b; // 加法
int difference = a - b; // 减法
int product = a * b; // 乘法
double quotient = (double)a / b; // 除法,转换为double以得到精确结果
int remainder = a % b; // 取模

System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
System.out.println("Quotient: " + quotient);
System.out.println("Remainder: " + remainder);

在这里插入图片描述
注意事项:整数除法会截断小数部分,如果需要得到精确的浮点结果,至少一方应转换为floatdouble

此外,取模运算符在学习数学的过程中,使用频率远低于加减乘除,但是其在编程世界里非常有用,一种典型应用是轮播图,下面的GIF动图是4张图片的轮播效果:

21d93d126e82ca63559ea8d6ada17b7d.gif

伪代码如下:

  int imageIndex = 0;
  while(true) {
     // 展示最后一张图片后,又从第一张开始
     imageIndex = imageIndex % 4;
     show(imageIndex);
     imageIndex = imageIndex + 1;
  }

2. 自增自减运算符

自增(++)和自减(--)运算符用于增加或减少变量的值,分为前置形式和后置形式。前置形式先增减后使用,后置形式先使用后增减。

代码实例

int x = 5;
System.out.println(++x); // 输出6,x先加1再使用
int y = 5;
System.out.println(y++); // 输出5,y先使用再加1
System.out.println(y); // 输出6,此时y的值已加1

注意事项:在循环控制和复合赋值语句中,自增自减运算符的前置或后置形式会影响表达式的值和变量的状态,需谨慎使用。

3. 赋值运算符

赋值运算符=用于将一个值赋给一个变量。除了基本的赋值外,还有复合赋值运算符,如+=-=等,它们结合了算术运算和赋值操作。

代码实例

int num = 10;
num += 5; // 相当于num = num + 5;
System.out.println(num); // 输出15

注意事项:复合赋值运算符简化了代码,但也要注意运算顺序和数据类型转换带来的问题。

4. 关系运算符

关系运算符用于比较两个值,返回truefalse。包括==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

代码实例

int m = 10;
int n = 20;

System.out.println(m < n); // 输出true
System.out.println(m == n); // 输出false

注意事项:在比较字符串时,应使用equals()方法而非==,因为==比较的是引用而非内容。

5. 逻辑运算符

逻辑运算符用于组合布尔表达式。包括&&(逻辑与)、||(逻辑或)、!(逻辑非)。

代码实例

boolean isRaining = true;
boolean haveUmbrella = false;

if (isRaining && !haveUmbrella) {
    System.out.println("You'll get wet!");
}

注意事项&&具有短路特性,如果第一个表达式为false,则不会继续评估第二个表达式。

综合实战

运用所学运算符,实现这个需求:从低位到高位输出一个整数各位上的数字,如对于数字1928,输出:8,2,9,1。

代码如下:

public void showEachDigital(int number) {
   while(number > 0) {
     int digital = number % 10;
     System.out.println(digital);
     number = number / 10;
   }
}

在这里插入图片描述

6. 三元运算符

三元运算符(条件运算符)提供了一种简洁的方式来表示简单的if-else结构。格式为条件 ? 表达式1 : 表达式2

代码实例

int score = 85;
String result = score >= 60 ? "Pass" : "Fail";
System.out.println(result); // 输出Pass

注意事项:三元运算符适合简单条件判断,复杂的逻辑还是应该使用if-else语句。

7. 运算符优先级

运算符的优先级决定了表达式中运算的顺序。Java遵循特定的运算符优先级规则,如括号内的表达式最先计算,接着是算术运算、关系运算、逻辑运算等。

代码实例

int a = 20;
int b = 10;
int c = 5;

int result = a + b * c - a / b;
System.out.println(result); // 输出45,先乘除后加减

注意事项:使用括号可以明确优先级,使代码更易读。

总结

Java运算符是构建复杂程序的基础,掌握它们的使用和优先级对于写出高效、清晰的代码至关重要。通过本文的介绍和实例,希望能帮助读者更好地理解和运用这些运算符,让代码表达更加精准和高效。记住,实践是学习的最好方式,不断编写代码并探索不同的场景,你会越来越熟练地掌握它们。

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

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

相关文章

如何申请免费一年SSL证书

申请免费一年的SSL证书可以通过以下几个步骤进行&#xff0c;这里以JoySSL为例&#xff0c;因为它是目前提供此类服务的流行平台之一&#xff0c;同时也提到了宝塔面板中的TrustAsia SSL证书。请根据您的具体需求选择合适的方式&#xff1a; 申请免费一年SSL证书&#xff1a; …

最新版rancher环境配置安装和集群搭建详细教程记录

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

Keil编程不同驱动文件引用同一个常量的处理方法

基础不牢&#xff0c;地动山摇&#xff0c;最近单片机编程又遇到一个基础问题。 我在头文件中定义了一个常量同时给两个驱动文件使用&#xff0c;封装的时候编译没问题&#xff0c;但是在main函数中引用驱动函数的时候就出现了重定义的问题&#xff0c;如下如所示。 解决方法很…

Java modbus 实现RTU串口作为slave(服务端)读写数据

这里要了解下modbus的RTU和TCP 的几个名称关系&#xff1a; Modbus/RTU&#xff1a;主站 和从站 关系 Modbus/TCP&#xff1a;客户端和服务端关系 关系 主站主动找从站读写数据 客户端主动找服务端读写数据 所以当使用Modbus/TCP时&#xff0c;主站一般作为客户端&#xff…

C/C++:Windows动态链接库

动态链接库&#xff08;Dynamic Link Library&#xff0c;简称DLL&#xff09;是在运行时加载的库&#xff0c;它们的代码和数据在内存中与目标程序共享&#xff1b;这意味着多个程序可以共享相同的库实例&#xff0c;并且库的代码可以在不重新编译目标程序的情况下更新。 工作…

怎么转换音频?看这3款音频转换器

随着数字媒体的发展&#xff0c;音频文件在我们的日常生活中占据了越来越重要的地位。有时候在不同的应用场景里&#xff0c;无论是音乐、语音还是其他类型的音频内容&#xff0c;我们都需要对其进行转换以满足不同的需求。 本文将为您介绍3款常用的音频转换器&#xff0c;帮助…

基于.NetCore和ABP.VNext的项目实战一:abp cli 搭建项目

学习了阿星Plus的博客项目,自己也试着搭建自己的博客。 ABP和ABP.VNext的主要区别在于核心库的精简、对领域驱动设计(DDD)的关注、以及使用的技术栈。 1、ABP VNext的核心库相比ABP更加精简,它将原有许多组件从核心库中抽离成独立的组件,这使得开发者可以更灵活地选择需要…

Github新手入门使用方法

**存在问题&#xff1a;**新手如何快速入门github&#xff0c;能够下载开源文件&#xff0c;并且修改后更新远程github仓库&#xff1b; 解决方案&#xff1a; 参考&#xff1a; http://www.360doc.com/content/24/0301/12/60419_1115656653.shtml https://blog.csdn.net/gongd…

Python环境变量的访问:从入门到精通

环境变量是操作系统中的一种特殊变量&#xff0c;它允许用户在不修改程序的情况下&#xff0c;通过配置文件来改变程序的行为。在Python中&#xff0c;访问环境变量是一个常见的需求&#xff0c;无论是为了读取配置信息、获取系统信息&#xff0c;还是进行程序调试。本文将详细…

荆州科技局副局长乔梁莅临湖北点赋网络科技公司参观调研

近日&#xff0c;荆州科技局副局长乔梁&#xff0c;莅临湖北点赋网络科技公司进行参观调研。点赋科技总经理崔梦娇亲自陪同&#xff0c;向副局长介绍了公司的D咖智能饮品机器人经营状况和研发进展情况。 在参观过程中&#xff0c;副局长乔梁对点赋科技的创新能力和技术成果给予…

商业模式都验证不了,还搞APP,莫非想早死早投胎。

有几个原因可以解释为什么大部分互联网创业者选择先开发小程序而不是直接做App&#xff1a; 低成本和快速开发&#xff1a;相比于开发一个完整的App&#xff0c;开发小程序的成本更低且开发周期更短。小程序可以在现有的移动平台上运行&#xff0c;无需独立的安装和更新&#…

地产人的福音!VR全景分屏对比,让装修施工一目了然

现如今&#xff0c;VR全景已成为地产行业不可或缺的应用工具&#xff0c;从地产直播到楼市VR地图&#xff0c;从效果图到水电家装施工记录&#xff0c;可以说整个地产行业的上下游生态中都可以看到720云VR全景的身影。 以720云VR全景作为直播载体 VR全景高清矩阵地图等多种内容…

干部民主测评:深化管理智慧,凝聚团队力量

在现代化组织管理的广阔舞台上&#xff0c;干部民主测评扮演着举足轻重的角色。它不仅是评价干部工作实绩、能力素质的有力工具&#xff0c;更是推动组织向民主化、科学化、规范化迈进的强大引擎。通过民主测评&#xff0c;我们能够深入洞察每位干部的工作表现、群众基础和领导…

好物分享类视频带货怎么做?萤瓴优选开启爆款视频领取模式!千万不要错过!

好物分享类视频带货&#xff0c;作为当下热门的电商营销方式&#xff0c;正以其独特的魅力和效果吸引着越来越多的 keJ0277 商家和消费者。在这个充满机遇和挑战的时代&#xff0c;如何成功打造一款爆款好物分享视频&#xff0c;成为了众多商家关注的焦点。萤瓴优选&#xff0c…

【js刷题:数据结构链表篇之移除链表元素】

移除链表元素 一、定义链表节点&#xff08;面试时要自己写&#xff09;二、题目三、移除头节点1、直接在原链表中操作移除2、设置一个虚拟头结点在再进行删除操作 四、解题代码 一、定义链表节点&#xff08;面试时要自己写&#xff09; class ListNode {val;next null;cons…

最新VS code配置C/C++环境(tasks.json, launch.json,c_cpp_properties.json)及运行多个文件、配置Cmake

目录 一、VScode配置C/C环境&#xff0c;需设置tasks.json, launch.json文件 二、安装C/C扩展&#xff0c;配置tasks.json、launch.json、c_cpp_properties.json文件 (1)安装c/c扩展 (2)配置tasks.json文件 (3)配置launch.json文件 (4)配置中的参数(属性)说明 (5)运行程序(运行…

JINGWHALE 数字科学艺术创新中心

使命宗旨 JINGWHALE 数字科学艺术创新中心 以人文思想&#xff0c;结合自然科学&#xff0c;知行合一的践行人类数字化共产事业&#xff01;凝聚创造智慧&#xff0c;指导引领创建更美好的物质世界&#xff0c;获得更好的精神体验&#xff01; JINGWHALE 全人类数字共产主义理…

Oracle sqlnet.ora配置文件

一、作用 这里可以看官网解释Parameters for the sqlnet.ora File (oracle.com) 该文件是配置文件配置文件。它驻留在客户端计算机和数据库服务器上。配置文件使用此文件进行存储和实现。可以使用文件中的访问控制参数配置数据库服务器。这些参数根据协议.sqlnet.orasqlnet.o…

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;网上花店是在MySQL中建立数据表保存信息&#xff0c;运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的网…

宝兰德成为中国信通院政企信创促进中心成员 共谱信创产业新篇章

近日&#xff0c;中国信通院云计算标准和开源推进委员会2024年第一次全体工作会议圆满结束。会上&#xff0c;宝兰德获得由中国信通院和EDCC政企信息技术应用创新促进中心授予的荣誉证书&#xff0c;成为政企信创促进中心成员单位。 关于政企信创促进中心 中国信通院政企信创促…