JavaSE入门---认识运算符

news2025/1/25 4:40:41

文章目录

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 移位运算符
  • 条件运算符
  • 运算符的优先级

计算机的最基本的用途之一就是执行数学运算,运算过程中就会用到运算符,那什么是运算符呢? 即:对操作数进行操作的符号,不同运算符操作的含义不同

算术运算符

1.基本四则运算符

		// + - * / %
        int a = 20;
        int b = 10;
        System.out.println(a+b);  //30
        System.out.println(a-b);  //10
        System.out.println(a*b);  //200
        System.out.println(a/b);  //2
        System.out.println(a%b);  //0  %相当与数学中求除法的余数

注:

  1. 都是二元运算符,使用时必须有左右俩个操作数。
  2. int / int 的结果还是int 并且会向下取整。
  3. 做除法和取模时,右操作数不能为0
  4. % 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模。
  5. 俩侧操作数类型不一致时,会类型提升(向类型大的提升)

2.增量运算符

// += -= /= %=
        int a = 20;
        a += 10;        // a = a + 10;  30

        int b = 20;
        b -= 10;        // b = b - 10;  10

        int c = 20;
        c /=10;        // c = c / 10;  2

        int d = 20;
        d %=10;        // d = d % 10;  0

注: 只有变量才可以使用该类运算符,常量不能使用。

3.自增/自减运算符

// ++ --
        int a = 1;
        a++;        // a = a + 1;
        
        int b = 1;
        ++b;        // b = b + 1;
        
        int c = 1;
        c--;        // c = c - 1;
        
        int d = 1;
        --d;        // d = d - 1;

注:

  1. 如果单独使用 前置++ 和 后置++ 没有任何区别
  2. 如果混合使用 前置++ 先+1 再使用变量+1之后的值,后置++ 先使用变量原来的值 表达式结束后再给变量+1
  3. 只能给变量使用,常量不能使用。

关系运算符

		// == != < > <= >=  其运算结果只能是true或者false
        int a = 20;
        int b = 10;
        System.out.println(a==b);    // false
        System.out.println(a!=b);    // true
        System.out.println(a<b);     // false
        System.out.println(a>b);     // true
        System.out.println(a<=b);    // false
        System.out.println(a>=b);    // true

注: 需要多次判断时不能连着写。比如: 不能写 3 < a < 4 因写为 a > 3 && a < 4

逻辑运算符

1.逻辑与 &&(相当于且)
语法规则: 表达式1 && 表达式2 左右表达式必须是boolean类型的结果
含义:只有俩个表达式都为真,结果才为真。只要有一个表达式为假,结果就是假。
在这里插入图片描述

		int a = 1;
        int b = 2;
        System.out.println(a==1 && b==2);  // true
        System.out.println(a>1 && b<5);    // false
        System.out.println(a>1 && b>5);    // false

2.逻辑或 || (相当于或)
语法规则:表达式1 || 表达式2 左右表达式必须是boolean类型的结果。
含义:只有俩个表达式都为假,结果才为假。只要有一个表达式为真,结果就是真。
在这里插入图片描述

		int a = 1;
        int b = 2;
        System.out.println(a>1 || b>5);    // false
        System.out.println(a==1 || b>5);   // true
        System.out.println(a>1 || b<5);    // true

3.逻辑非 !
语法规则: !表达式
含义:真变假,假变真
在这里插入图片描述

		int a = 1;
        int b = 2;
        System.out.println(!(a==1));  // false
        System.out.println(!(a>1));   // true

注:

  1. 对于&&,如果左侧表达式值为false,则表达式结果一定为false,不需要计算右侧表达式。
  2. 对于||, 如果左侧表达式值为true, 则表达式结果一定为true, 不需要计算右侧表达式。

位运算符

Java中数据存储的最小单位是字节,而数据操作的最小单位是比特位。每个比特位存储一位二进制数字。
位操作表示按二进制位运算。

1.按位与 &
含义:如果两个二进制位都是1,则结果为1,否则结果为0;

		int a = 10;
        int b = 20;
        System.out.println(a & b);

在这里插入图片描述
2.按位或 |
含义:如果两个二进制位都是0,则结果为0,否则结果为1;

		int a = 10;
        int b = 20;
        System.out.println(a | b);

在这里插入图片描述
3.按位取反 ~
含义:如果该位为0,则转为1.如果该位为1,则转为0;

		int a = 10;
        int b = 20;
        System.out.println(~a);

在这里插入图片描述
4.按位异或 ^
含义:如果两个数字的二进制位相同,则结果为0,否则结果为1;

		int a = 10;
        int b = 20;
        System.out.println(a^b);

在这里插入图片描述

移位运算符

按照二进制比特位来运算的;

1.<< 左移一位
含义:左移一位,右侧补0
:向左移时丢弃的是符号位,数字可能由整数变为负数,由负数变为整数

 		int a = 1;
        System.out.println(a<<1);

在这里插入图片描述
2.>> 右移一位
含义:右移一位,左侧补符号位

		int a = 1;
        int b = -1;
        System.out.println(a>>1);
        System.out.println(b>>1);

在这里插入图片描述
3.>>> 无符号右移
含义:右移一位,左侧补0

		int a = 1;
        System.out.println(a>>>1);

在这里插入图片描述

注:

  1. 左移一位相当于原数字*2 左移N位相当于原数字*2^N
  2. 右移一位相当于原数字/2 右移N位相当于原数字/2^N
  3. 计算机中移位运算效率高于乘除运算

条件运算符

语法规则:表达式1 ? 表达式2 :表达式3
含义:如果表达式1结果为真,则最终结果为表达式2.如果表达式1结果为假,则最终结果为表达式3.

        int a = 10;
        int b = 20;
        int max = (a > b) ? a : b;     // max = 20

注: 条件运算符只有一个,也是Java中唯一的一个三目运算符。

运算符的优先级

在一条表达式中,各个运算符可以混合使用,但是运算符的优先级不同。有些情况下会带来很大的麻烦。表达式优先级层级较多、数量也不少,因此,我特地重新归纳整理了一次巧记版本。点击此处查看:巧记运算符优先级
在这里插入图片描述

注: 我们平时在写代码时如果遇到运算符优先级不确定的情况时,在有可能由歧义的代码中加括号即可。

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

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

相关文章

《小狗钱钱》阅读笔记(三)

目录 还会有各种各样的人取笑你&#xff0c;但也会有更多的人认可你 有的时候&#xff0c;疯狂的念头比普通的小目标更容易达到。当你定下大目标的时候&#xff0c;就意味着你必须付出比别人多得多的努力。 可是请你告诉我&#xff0c;你为什么不能因为做了一件自己喜欢的事…

功夫猫小游戏

欢迎来到程序小院 功夫猫 玩法&#xff1a; 对准对方猫点击鼠标左键进行扑街&#xff0c;碰到敌方猫扑街X1&#xff0c;不要让对方猫碰到自己&#xff0c;统计扑街次数&#xff0c;快去玩功夫猫吧^^。开始游戏https://www.ormcc.com/play/gameStart/189 html <canvas id&q…

Linux 的常用命令大全

常用命令 ls:查看目录与文件pwd:显示当前目录cd:切换目录绝对路径与相对路径touch:创建空文件tab :补全ctrl c :重新输入cat:查看文件内容mkdir:创建目录rm:删除cp:拷贝mv:移动或重命名文件和目录man:帮助命令lessheadtailvim:文本编辑grep:搜索指定文本模式或正则表达式ps:显…

视频监控/安防监控平台EasyCVR(V.3.4.0)界面更新大曝光,速来抢先看!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频监控平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录…

注意! Salesforce CTA认证流程已发生变化,技术架构师认证更简单了么?

对于Salesforce从业者来说&#xff0c;跟上生态系统中的持续变化不仅是必要的&#xff0c;而且是保持竞争力的重要组成部分。 如果你正在努力成为Salesforce认证技术架构师 (CTA)&#xff0c;或者是对Salesforce不断发展的认证流程感兴趣&#xff0c;你可能已经听说了CTA评审委…

Android12之报错 error: BUILD_COPY_HEADERS is obsolete(一百六十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

DVD复制软件 DVD-Cloner 2023 mac中文版软件介绍

DVD-Cloner mac是一款备受赞誉的DVD复制软件&#xff0c;用于将DVD光盘上的内容复制到计算机或其他空白DVD光盘上。它提供了强大而易于使用的工具和功能&#xff0c;使用户能够轻松地备份、克隆和烧录DVD。 DVD-Cloner具有直观的用户界面&#xff0c;使用户可以快速上手并进行操…

10-k8s-身份认证与鉴权

文章目录 一、ServiceAccount介绍二、ServiceAccount相关的资源对象三、dashboard空间示例 一、ServiceAccount介绍 ServiceAccount&#xff08;服务账户&#xff09;概念介绍 1&#xff09;ServiceAccount是Kubernetes集群中的一种资源对象&#xff0c;用于为Pod或其他资源提供…

我们要按什么方式对葡萄酒进行分类呢?

葡萄酒分类在许多地区是传统或称谓法的一部分&#xff0c;葡萄园分类历史悠久&#xff0c;可以追溯到14世纪。1644年当时乌兹堡议会按质量对该市的葡萄园进行排名&#xff0c;以及1700年在托卡伊-赫贾根据质量对葡萄园进行早期五级指定。 如果说按年份和品种对葡萄酒进行分类&…

MySQL 查询 唯一约束 对应的字段,列名称合并

MySQL 查询 唯一约束 对应的字段&#xff0c;列名称合并 SELECT F.DbName,F.TableName,F.ConstraintName,GROUP_CONCAT(ColumnName) ColumnName FROM ( SELECT t1.TABLE_SCHEMA DbName, t1.TABLE_NAME TableName,t1.CONSTRAINT_NAME ConstraintName,t2.COLUMN_NAME ColumnNam…

8.13 PowerBI系列之DAX函数专题-商品折上折迭代函数SUMX详解

需求 迭代的意思是就是逐行计算&#xff0c;当前行计算的时候需要依赖上一行的计算结果 实现 1 Amount_sumx 迭代 sumx(//遇到手套和帽子就不计算销售额 order_2,//逐行计算的是订单表 var current_type order_2[产品子类别] //中间计算过程&#xff0c;计算某个参数也可…

java注释

1.什么是注释 注释是写在程序中对代码进行解释说明的文字&#xff0c;方便自己和其他人查看&#xff0c;以便理解程序员的代码意思。&#xff08;写在程序中对程序进行解释说明的文字&#xff09; 2.注释类型 2.1单行注释&#xff1a;// 2.2多行注释&#xff1a;/**/ 2.3文档…

如何选择最适合你的LLM优化方法:全面微调、PEFT、提示工程和RAG对比分析

一、前言 自从ChatGPT问世以来&#xff0c;全球各地的企业都迫切希望利用大型语言模型&#xff08;LLMs&#xff09;来提升他们的产品和运营。虽然LLMs具有巨大的潜力&#xff0c;但存在一个问题&#xff1a;即使是最强大的预训练LLM也可能无法直接满足你的特定需求。其原因如…

【小尘送书-第八期】《小团队管理:如何轻松带出1+1>2的团队》

大家好&#xff0c;我是小尘&#xff0c;欢迎你的关注&#xff01;大家可以一起交流学习&#xff01;欢迎大家在CSDN后台私信我&#xff01;一起讨论学习&#xff0c;讨论如何找到满意的工作&#xff01; &#x1f468;‍&#x1f4bb;博主主页&#xff1a;小尘要自信 &#x1…

C#进阶——反射(Reflection)

定义&#xff1a;反射指的是在运行时动态地获取、检查和操作程序中的类型信息&#xff0c;而在我们的Unity中反射允许开发者在运行时通过代码来访问和修改对象的属性、方法和字段&#xff0c;而不需要提前知道这些成员的具体信息。 举一个例子&#xff0c;我们使用反射在运行的…

linux下的rsync(文件同步) 用法教程

一、简介 rsync 是一个常用的 Linux 应用程序&#xff0c;用于文件同步。 它可以在本地计算机与远程计算机之间&#xff0c;或者两个本地目录之间同步文件&#xff08;但不支持两台远程计算机之间的同步&#xff09;。它也可以当作文件复制工具&#xff0c;替代cp和mv命令。 …

ERP系统是如何运作的?erp管理系统操作流程

ERP系统是如何运作的&#xff1f;ERP系统的运作流程是怎样的&#xff1f; 以简道云ERP管理系统为例&#xff1a; 各行各业适配的ERP系统​>>>>https://www.jiandaoyun.com 可以看到上面那个流程图&#xff0c;一般来说&#xff0c;我们把ERP系统可以分为4个大的模…

极光笔记 | 发送功能使用技巧分享

在全球化竞争激烈的商业环境中&#xff0c;高效的消息通知解决方案是企业成功的关键。EngageLab作为一家专注于海外市场的消息服务平台&#xff0c;为全球企业提供了一体化的消息通知解决方案。其中&#xff0c;EngageLab的国际邮件发送是其强大而灵活的产品服务之一。本文将与…