3 运算符与表达式

运算符:对字面量或者变量进行操作的符号
表达式:用运算符把字面量或者变量连接起来符合java语法的式子就可以称作表达式

                不同运算符连接的表达式体现的是不同类型的表达式

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

  +:运算符,并且是算术运算符

  a+b:是表达式,由于+是算术运算符,所以表达式叫算术表达式

算术运算符

+

-
*        

/

除 :整数相除,结果只能得到整数,要想得到带有小数的结果,就需要有小数参与运算

%

取余:作用是用来取余数的,如果操作数都是整数,结果是整数,操作数有一个是小数,结果都是小数

%有什么用?

         %目前能想到的场景,可以进行奇数偶数的判断,任何一个数%2的结果,不是0就是1

public class ArithmeticOperator {public static void main(String[] args) {System.out.println(5/2); // 2 整数相除,结果只能得到整数System.out.println(5/2.0); //2.5 要想得到带有小数的结果,就需要有小数参与运算System.out.println(5.0/2.0); //2.5 要想得到带有小数的结果,就需要有小数参与运算System.out.println(5.0/2); //2.5 要想得到带有小数的结果,就需要有小数参与运算System.out.println("_________________________________________");System.out.println(5%2); //1System.out.println(5%2.0); //1.0System.out.println(5.0%2.0); //1.0System.out.println(5.0%2); //1.0}
}

需求:键盘录入一个三位数,将其拆分为个位,十位,百位,打印在后台

个位的计算:数值%10123除以10(商12,余数为3)
十位的计算:数值/10%10123除以10(商12,余数为3,整数相除只能等于整数)12除以10(商1,余数为2)
百位的计算:数值/10/10%10123除以10(商12,余数为3,整数相除只能等于整数)12除以10(商1,余数为2)1除以10(商0,余数为1)
千位的计算:数值/10/10/10%10
import java.util.Scanner;
public class ArithmeticOperatorTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个三位数:");int num = sc.nextInt();int ge = num%10;int shi = num/10%10;int bai = num/10/10%10;System.out.println("个位数:" + ge);System.out.println("十位数:" + shi);System.out.println("百位数:" + bai);}
}

自增自减运算符

        ++ :让变量自身的值+1

         -- :让变量自身的值-1

        只能操作变量

        使用方式有两种
1.单独使用  一句代码中,只做++ 或者 --,单独使用时,++ 或者 -- 在变量的前面还是后面没有区别
2.参加运算
如果放在变量的前面,先对变量进行+1或者-1,再拿变量的值进行运算,当++ 或者--,在前面时,先运算再赋值
如果放在变量的后面,先拿变量的值进行运算,再对变量的值进行 +1或者-1,当++或者--,在后面是,先赋值在运算

public class AutodecrementOperator {public static void main(String[] args) {int x = 10;int y = x++; // y = 10;x=11int z = ++y;//  y =11;z=11System.out.println("x的值:" + x);System.out.println("y的值: " + y);System.out.println("z的值:" + z);System.out.println("______________________________");int a = 3;//        4       4      5*10int b = (++a) + (a++) +(a*10);System.out.println("a的值" + a);//5System.out.println("b的值" + b);//58}
}

字符串的拼接

     + 当加号操作当中,遇到了字符串,这时+号就是字符串连接符,而不是算术运算符

赋值运算符

     

        赋值运算符是编程中用于给变量赋值的操作符,主要包括以下几种:

  1. =:基本赋值运算符
    将右边的值赋给左边的变量
    示例:a = 10; 表示将整数值10赋值给变量a

  2. +=:加法赋值运算符
    执行步骤:

    • 先计算左边变量和右边值的和
    • 然后将结果赋给左边的变量
      等价于:a = a + b
      示例:a += 5; 相当于 a = a + 5;
  3. -=:减法赋值运算符
    执行步骤:

    • 先计算左边变量减去右边值的差
    • 然后将结果赋给左边的变量
      等价于:a = a - b
      示例:balance -= withdrawal; 可用于银行账户扣款场景
  4. *=:乘法赋值运算符
    执行步骤:

    • 先计算左边变量和右边值的乘积
    • 然后将结果赋给左边的变量
      等价于:a = a * b
      示例:price *= 1.1; 可用于价格上调10%的计算
  5. /=:除法赋值运算符
    执行步骤:

    • 先计算左边变量除以右边值的商
    • 然后将结果赋给左边的变量
      等价于:a = a / b
      示例:average /= count; 常用于计算平均值
  6. %=:取模赋值运算符
    执行步骤:

    • 先计算左边变量除以右边值的余数
    • 然后将结果赋给左边的变量
      等价于:a = a % b
      示例:seconds %= 60; 可用于将总秒数转换为分钟和秒数

应用场景:

  • 游戏开发中角色属性的实时更新
  • 金融计算中的累计利息计算
  • 科学计算中的迭代运算
  • 数据处理中的聚合统计

注意事项:

  1. 运算符左右两边需要有明确的值或变量
  2. 除法和取模运算时右边值不能为0
  3. 复合赋值运算符比简单赋值运算符执行效率更高

关系运算符

关系运算符是编程中用于比较两个值的基本运算符,这些运算符的运算结果都是布尔类型(boolean),即只能返回true或false。以下是各种关系运算符的详细说明:

  1. 相等运算符(==): 用于判断两个操作数的值是否相等。例如:

    • 5 == 5 返回true
    • 3 == 5 返回false
    • "hello" == "hello" 返回true 注意:在比较字符串时,实际上是比较字符串的内容而非对象引用
  2. 不等运算符(!=): 用于判断两个操作数的值是否不相等。例如:

    • 5 != 3 返回true
    • 5 != 5 返回false
    • "abc" != "def" 返回true
  3. 大于运算符(>): 用于判断左操作数是否大于右操作数。例如:

    • 10 > 5 返回true
    • 5 > 10 返回false
    • 5 > 5 返回false
  4. 大于等于运算符(>=): 用于判断左操作数是否大于或等于右操作数。例如:

    • 10 >= 5 返回true
    • 5 >= 10 返回false
    • 5 >= 5 返回true
  5. 小于运算符(<): 用于判断左操作数是否小于右操作数。例如:

    • 3 < 5 返回true
    • 5 < 3 返回false
    • 5 < 5 返回false
  6. 小于等于运算符(<=): 用于判断左操作数是否小于或等于右操作数。例如:

    • 3 <= 5 返回true
    • 5 <= 3 返回false
    • 5 <= 5 返回true

 逻辑运算符

在Java编程中,逻辑运算符是用于连接布尔类型的表达式或值的重要工具。它们可以将多个条件组合成一个整体逻辑表达式,从而构建更复杂的判断条件。以下是Java中主要的逻辑运算符及其详细说明:

  1. 逻辑与(&)

    • 表示"并且"的关系
    • 运算规则:遇false则false
    • 特点:没有短路效果,无论左边表达式的结果是true还是false,右边表达式都会执行
    • 示例:(a > 5) & (b < 10) 只有当a大于5且b小于10时,整个表达式才为true
  2. 逻辑或(|)

    • 表示"或者"的关系
    • 运算规则:遇true则true
    • 特点:没有短路效果,无论左边表达式的结果是true还是false,右边表达式都会执行
    • 示例:(x == 0) | (y == 0) 只要x等于0或者y等于0,整个表达式就为true
  3. 逻辑非(!)

    • 表示"取反"操作
    • 一元运算符,只需要一个操作数
    • 示例:!(age < 18) 等同于判断age是否大于等于18
  4. 逻辑异或(^)

    • 表示"相同为false,不同为true"
    • 当两个操作数相同时返回false,不同时返回true
    • 示例:(a > b) ^ (c > d) 当两个比较结果相同时返回false,不同时返回true
  5. 短路与(&&)

    • 表示"并且"的关系
    • 具有短路效果:当左边表达式为false时,右边表达式不会执行
    • 效率更高,是实际开发中最常用的与运算
    • 示例:(user != null) && (user.getName().equals("Admin")) 可以避免NullPointerException
  6. 短路或(||)

    • 表示"或者"的关系
    • 具有短路效果:当左边表达式为true时,右边表达式不会执行
    • 效率更高,是实际开发中最常用的或运算
    • 示例:(score >= 90) || (specialTalent == true) 如果分数已经大于等于90,就不会检查特殊才能

在实际编程中,短路运算符(&&和||)比非短路运算符(&和|)更常用,因为它们可以提高程序效率并避免不必要的计算。特别是在可能引发异常的判断中(如检查对象是否为null后再调用其方法),使用短路运算符可以避免程序崩溃。

三元运算符(三目运算符 )

基本语法格式

判断条件 ? 值1 : 值2;

执行流程说明

  1. 条件评估阶段

    • 首先计算判断条件的值
    • 这个条件可以是任何能返回布尔值的表达式(如比较运算、逻辑运算等)
  2. 结果选择阶段

    • 如果条件评估结果为true
      • 整个表达式将返回值1
      • 值2部分不会被执行
    • 如果条件评估结果为false
      • 整个表达式将返回值2
      • 值1部分不会被执行

实际应用示例

// 简单示例
let age = 20;
let status = (age >= 18) ? "成年人" : "未成年人";// 嵌套使用示例
let score = 85;
let grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : "D";

注意事项

  • 该运算符是JavaScript中唯一需要三个操作数的运算符
  • 表达式中的值1值2可以是任意类型的值或表达式
  • 虽然可以嵌套使用,但过度嵌套会降低代码可读性

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

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

相关文章

MySQL的单行函数:

目录 函数的理解&#xff1a; MySQL的内置函数及分类&#xff1a; 单行函数&#xff1a; 数值函数&#xff1a; 基本函数&#xff1a; 角度与弧度互换函数&#xff1a; 三角函数&#xff1a; 指数与对数&#xff1a; 进制转换&#xff1a; 字符串函数&#xff1a; 日…

设计模式(二十一)行为型:状态模式详解

设计模式&#xff08;二十一&#xff09;行为型&#xff1a;状态模式详解状态模式&#xff08;State Pattern&#xff09;是 GoF 23 种设计模式中的行为型模式之一&#xff0c;其核心价值在于允许一个对象在其内部状态改变时改变其行为&#xff0c;使得对象看起来像是修改了它的…

深入理解 Doris Compaction:提升查询性能的幕后功臣

在 Doris 的数据存储与查询体系里&#xff0c;Compaction 是保障查询效率、优化存储结构的关键机制。如果你好奇 Doris 如何在高频写入后仍能高效响应查询&#xff0c;或是想解决数据版本膨胀带来的性能问题&#xff0c;这篇关于 Compaction 的深度解析值得收藏 &#x1f447; …

css 实现虚线效果的多种方式

使用边框实现虚线 通过设置元素的边框样式来实现虚线效果。以下为示例代码: .dashed {border: 1px dashed black; }使用 CSS 伪元素实现虚线 使用伪元素来模拟虚线的效果。以下为示例代码: .dashed::before {content: "";display: block;height: 1px;border-bo…

深入剖析 RocketMQ 分布式事务:原理、流程与实践

Apache RocketMQ 是一种分布式消息队列系统&#xff0c;支持分布式事务消息&#xff0c;以确保在分布式系统中数据的一致性。它通过一种基于两阶段提交(2PC)的机制结合补偿逻辑来实现分布式事务的最终一致性。以下是对 RocketMQ 分布式事务的详细讲解&#xff0c;包括其核心概念…

具身智能 自动驾驶相关岗位的技术栈与能力地图

一、硬技能技术栈&#xff08;优先级排序&#xff09; 1. 核心领域技术&#xff08;★★★★★&#xff09;技术方向具体技能学习建议大模型实战- VLA架构&#xff08;RT-2、PaLM-E&#xff09;开发/微调- 多模态对齐&#xff08;CLIP、Flamingo&#xff09;- 生成式策略&#…

实现了加载 正向 碰撞 雅可比 仿真

""" # 此示例从 URDF 文件中加载一个 UR10 机械臂的模型 # 随后演示 Pinocchio 库的基本功能,如正向运动学计算 # 雅可比矩阵计算、碰撞检测以及动力学仿真 """ # 导入 meshcat 的几何模块,用于创建和管理可视化的几何对象 import meshcat.geo…

【0基础PS】PS工具详解--画笔工具

目录前言一、画笔工具的位置与快捷键​二、画笔工具选项栏设置​三、画笔工具的进阶应用​四、常见问题及解决方法​总结前言 在 Photoshop 的众多工具中&#xff0c;画笔工具无疑是极具创造力和实用性的工具之一。无论是进行图像绘制、照片修饰&#xff0c;还是特效制作&…

window10和ubuntu22.04双系统之卸载ubuntu系统

window10和ubuntu22.04双系统之卸载ubuntu系统&#xff09;1. 删除Ubuntu系统占用的磁盘分区&#xff08;在Windows下操作&#xff09;2. 删除ubuntu开机引导项1. winr出来终端提示框后输入2. 然后会在命令行中显示电脑的硬盘列表&#xff0c;输入命令选择安装Windows的那个硬盘…

(C++)C++类和类的方法(基础教程)(与Python类的区别)

前言&#xff1a; 本篇博客建议搭配&#xff1a;&#xff08;Python&#xff09;类和类的方法&#xff08;基础教程介绍&#xff09;&#xff08;Python基础教程&#xff09;-CSDN博客 一起学习使用&#xff1b; 源代码&#xff1a; #include <iostream> #include &…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博文章数据可视化分析-文章分类下拉框实现

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解微博文章数据可视化分析-文章分类下拉框实现…

Git命令保姆级教程

Git 入门网站 https://learngitbranching.js.org/?localezh_CN Git 命令 git init // 在本地目录内部会生成.git文件夹 git initgit clone // 从git服务器拉取代码 // 代码下载完成后在当前文件夹中会有一个 shop 的目录&#xff0c;通过 cd shop 命令进入目录。 git clone ht…

Java Ai For循环 (day07)

循环结构 for&#xff1a;循环语句的作用&#xff1a;可以将一段代码重复的执行很多次for 循环语句格式&#xff1a;执行流程&#xff1a; 初始化语句执行条件判断语句&#xff0c;看结果是 true&#xff0c;还是 false false结束&#xff0c;true继续执行循环体语句执行条件控…

Directory Opus 使用优化

自定义快捷键 Directory Opus 移动标签到另一栏 设置快捷键&#xff1a;ctrl←/→ 设置步骤&#xff1a; 打开【设置】—>选择【自定义工具栏和快捷键】 选择【新建】—>【新建窗口快捷键】 输入快捷键命令 Go TABMOVEother此时可以点击运行进行测试&#xff0c;…

Qt知识点2『Ubuntu24.04.2安装Qt5.12.9各种报错』

问题1&#xff1a;Qt安装完毕后&#xff0c;新建一个最简单的测试程序&#xff0c;但是QtCreator左侧构建的三个按钮呈现灰色&#xff0c;无法进行构建操作答&#xff1a;进入QtCreator的Kits界面&#xff08;工具-选项&#xff09;&#xff0c;点击"自动检测"下的De…

TS面试题

1.TS有哪些类型&#xff08;对比与js&#xff09;&#xff1f;关键字/语法用途示例any关闭类型检查let a: any 4unknown类型安全的 anylet u: unknown 4; if (typeof u number) …never永不存在的值function err(): never { throw 0; }void无返回值function f(): void {}enu…

借助Early Hints和HarperDB改善网页性能

对电商网站来说&#xff0c;糟糕的页面性能可能会增加交易放弃率。一直以来&#xff0c;人们会使用CDN进行缓存从而缩短页面加载时间&#xff0c;但即便实施了强大的缓存&#xff0c;消费者在通过移动网络访问这些网站时可能仍然会需要频繁等待。最近诞生了一种名为“早期提示”…

MEMS陀螺如何成为无人机稳定飞行的核心?

在无人机自主翱翔、灵活机动并适应多变环境的背后&#xff0c;对其运动状态——尤其是姿态——的精确感知是基石。作为飞行控制系统&#xff08;飞控&#xff09;的“内耳”&#xff0c;陀螺仪实时捕捉机体绕X、Y、Z三轴的旋转角速度。这一核心数据是飞控进行姿态解算和维持飞行…

腾讯云拉取docker镜像失败怎么办

ps:我直接按照步骤1和2就解决了 以下内容来自豆包 在腾讯云服务器上拉取 Docker 镜像失败&#xff0c;可以按照以下步骤排查和解决&#xff1a; 一、检查网络连接 确认服务器网络正常 bash ping www.baidu.com # 测试公网连通性如果无法 ping 通&#xff0c;检查服务器防火墙…

Apache FOP实践——pdf模板引擎

文章目录 基本概念设计思想具体实践完整应用 基本概念 Apache FOP&#xff08;Formatting Objects Processor&#xff09;是一个基于Java的开源工具&#xff0c;用于将 XSL-FO&#xff08;XSL Formatting Objects&#xff09; 文档转换为PDF、图像等格式。 设计思想 将内容&…