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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openlayer实现ImageStatic扩展支持平铺Wrapx

地图平铺&#xff08;Tiling&#xff09;是地图服务中常见的技术&#xff0c;用于将大尺寸的地图数据分割成许多小块&#xff08;瓦片&#xff09;&#xff0c;便于高效加载和展示。这种技术特别适用于网络环境&#xff0c;因为它允许浏览器只加载当前视图窗口内所需的地图瓦片…

摸鱼大数据——Linux搭建大数据环境(集群免密码登录和安装Hadoop)二

集群设置免密登录 克隆node1虚拟机的前置条件&#xff1a;node1虚拟机存在且处于关闭状态 1.克隆出node2虚拟机 1.node1虚拟机: 右键 -> "管理" -> "克隆" 2.图形化弹窗中: "下一页"->"下一页"->选择"创建完整克隆&…

蓝鹏测控:扩大出口,勇拓海外市场

蓝鹏测控自2012年成立以来&#xff0c;始终专注于工业测量仪器的研发、生产与销售。公司坚持经验与创新并存&#xff0c;长期与华北电力大学、河北大学等多所知名院校深度合作&#xff0c;拥有一支技术力量雄厚的研发团队。经过多年的努力&#xff0c;蓝鹏测控已研发出多款具有…

使用C++实时读取串口数据(window使用已编译LibModbus库并用QT实现一个实时读取串口数据)

先看这篇文章&#xff0c;写得很详细: QT应用篇 四、window编译LibModbus库并用QT编写一个Modbus主机 手把手教学 编译好的LibModbus库可以在上面文章里下载&#xff0c;也可以在我的链接里下载&#xff1a; 为了在Qt Creator中创建新项目并嵌入上述C代码&#xff0c;请执行以…

算法-卡尔曼滤波之卡尔曼滤波的第二个方程:预测方程(状态外推方程)

在上一节中&#xff0c;使用了静态模型&#xff0c;我们推导出了卡尔曼滤波的状态更新方程&#xff0c;但是在实际情况下&#xff0c;系统都是动态&#xff0c;预测阶段&#xff0c;前后时刻的状态是改变的&#xff0c;此时我们引入预测方程&#xff0c;也叫状态外推方程&#…

冯喜运:5.14今日黄金原油涨跌走势分析操作建议

【黄金消息面分析】&#xff1a;本周黄金市场将迎来关键的美国通胀数据&#xff0c;包括周二的生产者价格指数(PPI)和周三的消费者物价指数(CPI)。这些数据对美联储的政策路径至关重要&#xff0c;可能会影响市场对利率调整的预期。目前&#xff0c;现货黄金价格小幅上涨&#…

Redis知识总结

文章目录 1. NoSQL2. Redis介绍3. Redis的下载与安装3.1 Windows版3.2 Linux版 4. Redis的数据类型5. Redis常用命令5.1 操作字符串的命令5.2 操作哈希结构的命令5.3 操作列表的命令5.4 操作set集合的命令5.5 操作zset集合的命令5.6 Redis通用命令5.7 其他命令 6. 在Java中操作…

【Python |基础入门】入门必备知识(基础各方面全覆盖)

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

Linux系统运行级别

Linux系统运行级别&#xff1a;linux系统共有7个运行级别&#xff0c;不同的级别运行的程序和功能都是不一样的而linux系统默认是运行在一个标准级别上&#xff0c;系统运行级别文件/etc/inittab 运行级别0&#xff1a;所有进程被终止&#xff0c;机器将有序的停止&#xff0c;…

C语言学习【常量和C预处理器】

C语言学习【常量和C预处理器】 符号常量(symbolic constant) C预处理器可以用来定义常量 就像这样 #define TAXRATE 0.015/* 通用格式 末尾不加分号 */ /* 大写表示符号常量是 C 语言一贯的传统 */ #define NAME value编译程序时&#xff0c;程序中所有TAXRATE都会被替换成0.…

天锐绿盾|设计院图纸透明加密软件、制造业文件资料防止外泄

#图纸加密软件# 天锐绿盾是一家专注于数据安全解决方案的提供商&#xff0c;其产品主要为企业级用户设计&#xff0c;旨在保护敏感信息和知识产权免遭未经授权的访问或泄露。"天锐绿盾"的图纸透明加密软件和机械制造业文件资料防止外泄系统&#xff0c;是专为设计院…

Properties配置文件和源码

先对测试类进行get方法复写得到getReqType 判断caseinfo等于get时&#xff0c;就是get请求&#xff0c;反之就不是 这里的url和param都是xxx代替&#xff0c;如果直接写内容&#xff0c;每次都会请求 三目运算优化 为什么要用配置文件 test里时url,可以将ip和端口写在配置文…

Flink CDC 原理

简介 Flink CDC&#xff08;Change Data Capture&#xff09;是 Apache Flink 提供的一个变更数据捕获工具集。它可以监控数据库的变更&#xff0c;并将这些变更实时地以流的形式提供给下游系统&#xff0c;这些变更包括插入、更新和删除操作。 Flink CDC 适用于需要实时数据…

利用matplotlib和KNeighborsClassifier,进行DBSACN聚类算法

代码&#xff1a; # -*- coding: utf-8 -*- """ Created on Sat May 11 10:23:50 2024author: admin """ # 调用库 import numpy as np import matplotlib.pyplot as plt # 调用人工智能模型库 from sklearn.neighbors import KNeighborsClassi…

自定义el-select下拉菜单的内容以及数据回显的内容

最终的效果 下拉选项的自定义内容好实现&#xff0c;因为他有默认插槽&#xff0c;所以直接在el-option标签里面写自定义内容就可以实现 <el-selectref"seriesBorderTypeRef"class"series-border-type"change"changeSeriesBorderType"v-model…

如何轻松获得稳定的静态IP?

在当今互联网时代&#xff0c;静态IP地址对于许多领域至关重要。无论是个人用户还是企业&#xff0c;拥有一个稳定的静态IP地址都能够提供诸多便利。静态IP地址与动态IP地址相比&#xff0c;具有不变性和可追溯性&#xff0c;适用于需要长期稳定通信和追踪的场景。了解静态IP的…

【前端】打砖块游戏:实现细节介绍

打砖块游戏:实现细节介绍 在本文中,我将详细介绍如何使用HTML、CSS和JavaScript技术构建一个简单的打砖块游戏。我们将重点讨论游戏的三个核心技术方面:碰撞检测、画图和事件监听。 完整代码我放在:github可以直接拉取代码测试。 游戏概览 打砖块游戏中,玩家通过控制底…

[Cesium]Cesium基础学习——Primitive

Cesium开发高级篇 | 01空间数据可视化之Primitive - 知乎 Primitive由两部分组成&#xff1a;几何体&#xff08;Geometry&#xff09;和外观&#xff08;Appearance&#xff09;。几何体定义了几何类型、位置和颜色&#xff0c;例如三角形、多边形、折线、点、标签等&#xf…

Linux之·网络编程·I/O复用·select

系列文章目录 文章目录 前言一、概述1.1 介绍IO复用的概念和作用1.1.1 I/O复用具体使用的场景1.1.2 I/O复用常用函数 二、select函数的重要性和用途2.1 基本的select函数2.2 如何使用FD_SET、FD_CLR等宏来设置和清除文件描述符集合2.3 select()函数函数整体使用框架&#xff1a…

被动防护不如主动出击

自网络的诞生以来&#xff0c;攻击威胁事件不断涌现&#xff0c;网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而&#xff0c;传统的网络防御技术&#xff0c;如防火墙和入侵检测技术&#xff0c;往往局限于一种被动的敌暗我明的防御模式&#xff0c;面对攻击者无…