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

在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.hqwc.cn/news/702260.html

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

相关文章

Spring Boot实现多数据源快速入门

1.为什么需要多数据源&#xff1f; 多数据源既动态数据源&#xff0c;项目开发逐渐扩大&#xff0c;单个数据源、单一数据源已经无法满足需求项目的支撑需求。本文采用dynamic-datasource-spring-boot-starter实现多数据源&#xff0c; 主要特性 支持 数据源分组 &#xff0…

CheckStyle静态样式之道

优质博文&#xff1a;IT-BLOG-CN 在标准化的统一样式检查规范里&#xff0c;最为常用的统一样式工具是checkstyle插件&#xff0c;而不是国内阿里的代码规约插件。 【1】下载插件 【2】配置生效 配置生效及告警设置 【3】配置checkstyle.xml 官网地址 官网最新Releases 下面…

Node.js安装及环境配置(超详细!保姆级!!)

目录 一、进入官网地址下载安装包 二、安装程序 三、环境配置 四、测试 五、安装淘宝镜像 一、进入官网地址下载安装包 Node.js — Download Node.js (nodejs.org) 选择对应你系统的 node.js 版本&#xff0c;我选择的是Windows系统&#xff0c;64位 点击图中选项&#…

51单片机:点亮一个LED灯

1.新建工程 选择AT89C52&#xff0c;在Atmel下显示的是See Microchip 并不需要添加启动文件到文件夹中。 添加main.c文件&#xff0c;c比cpp效率高&#xff0c;.asm汇编即更底层 程序编写好后 nop(); 该函数在这个头文件里面 #include <INTRINS.H> #include <R…

ubuntu18.04 运行ur5机械臂

视觉抓取初探索1-UR5机械臂抓取仿真 - 知乎 抓取不止&#xff01;Ubuntu 18.04下UR5机械臂搭建Gazebo环境&#xff5c;开源分享_哔哩哔哩_bilibili 源码地址&#xff1a;GitHub - Geo-JTao/UR5_gripper_camera_gazebo: 在Ubantu18.04中搭建Gazebo仿真环境 遇到问题&#xff1…

Google Chrome 设备工具栏原理

1.不同预览模式 2.计算出缩放比 3.固定滚动偏移 关键代码&#xff1a; overview&#xff1a; ratioW getChildRect().width / getParentRect().width ratioH getChildRect().height / getParentRect().height maxRatio max(ratioW, ratioH) if(maxRatio < 1) return 1 …

21、G1分代回收究竟如何让传统方法黯然失色?

21.1、前文回顾 在上一篇文章中,我们详细解析了G1垃圾回收器的设计思想。其核心理念在于将内存分割为众多小的Region,并针对新生代和老年代各自分配一部分Region。在垃圾回收过程中,G1会优先挑选那些能实现最短停顿时间以及最多回收对象的Region,以尽可能确保达到预设的垃…

企业网站开发技术

随着互联网的快速发展&#xff0c;企业网站成为了企业宣传和推广的重要渠道之一。一个好的企业网站不仅可以提升企业的形象&#xff0c;还可以实现在线销售和客户服务等功能。那么&#xff0c;企业网站的开发技术有哪些呢&#xff1f;本文将从前端开发和后端开发两个方面进行讨…

InfluxDB学习之windows上安装inFluxDB

这里写目录标题 打开官网下载地址下载后解压如何启动&#xff1f;linux以及完整教程地址 打开官网下载地址 官网下载地址 如果出现注册提示&#xff0c;关闭掉就可以了&#xff0c;不用注册。下载地址就在下方。 下载后解压 解压后得到以下内容 如何启动&#xff1f; 我…

多点 Dmall x TiDB:出海多云多活架构下的 TiDB 运维实战

作者&#xff1a;多点&#xff0c;唐万民 导读 时隔 2 年&#xff0c; 在 TiDB 社区成都地区组织者冯光普老师的协助下&#xff0c;TiDB 社区线下地区活动再次来到成都。来自多点 Dmall 的国内数据库负责人唐万民老师&#xff0c;在《出海多云架构&#xff0c;多点 TiDB 运维…

Linux常用指令集合

ls显示目录文件 选项&#xff1a; -a 所有文件&#xff08;all所有&#xff09; -l 详细信息&#xff08;Information信息&#xff09;&#xff08;自动包含-1&#xff09; 所以常用 ll -1 一行只输出一个文件。 -R 列出所有子目录下的文件。…

Linux 服务器配置共享文件夹(NFS)

一、准备三台 linux 服务器 三台服务器: manger:172.16.11.178 ap1:172.16.11.179 ap2:172.16.11.180 /root/serverfiles/ 为共享目录 二、配置步骤 1、在服务端01的机器上安装nfs和rpcbind程序 yum -y install nfs* yum -y install rpcbind* 2、在安装完nfs以及rpcb…