02 运算符

news2025/1/16 11:04:03

目录

第一章:概述

第二章:算术运算符

2.1 概述

2.2 应用示例

2.3 + 号的两种用法

2.4 自增自减运算

2.4.1 概述

2.4.2 单独使用

2.4.3 复合使用

第三章:赋值运算符

3.1 概述

3.2 应用示例

第四章:关系运算符(比较运算符)

4.1 概述

4.2 应用示例

第五章:逻辑运算符

5.1 概述

5.2 应用示例

5.3 && 和 & 区别,|| 和 |区别

第六章:条件运算符(三元运算符)

6.1 概述

6.2 应用示例

第七章:运算符的优先级(了解)


第一章:概述

  • 表达式:用运算符连接起来的式子。
  • 运算符的分类:
    • 按照功能分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符……

分类

运算符

算术运算符

+-*/%++--

赋值运算符

=+=-=*=/=%=

关系运算符

>>=<<===!=

逻辑运算符

&|^!&&||

条件运算符

(条件表达式)?结果1:结果2;

位运算符(了解)

&|~^<<>>>>>

  • 按照操作数个数分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符(三目运算符)
    • 一元运算符:操作数只有一个
      • 例如:
        • 正号(+):+a
        • 负号(-):-a
        • 自增(++):++i
        • 逻辑非:!true
    • 二元运算符:操作数有两个
      • 例如:
        • 加法:a + b
        • 大于:a > b
        • 逻辑与:a && b
    • 三元运算符:条件 ? 结果1 :结果2。

第二章:算术运算符

2.1 概述

算术运算符

符号解释

+

加法运算,字符串连接运算,正号

-

减法运算,负号

*

乘法运算

/

除法运算,整数/整数结果还是整数

%

求余运算,余数的符号只看被除数

++--

自增自减运算

2.2 应用示例

  • 示例:

/**
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class ArithmeticOperator {
    public static void main(String[] args) {
        // 正号:+
        int operator01 = +5;
        System.out.println("operator01 = " + operator01); // 5

        // 负号:-
        int operator02 = -5;
        System.out.println("operator02 = " + operator02); // -5

        // 负负得正
        int operator03 = -3;
        System.out.println("operator03 = " + -operator03); // 3

        // 加法: +
        int operatorAdd01 = 1;
        int operatorAdd02 = 2;

        int addResult = operatorAdd01 + operatorAdd02;
        System.out.println("addResult = " + addResult);// 3

        double operatorAdd03 = 10.2;
        double operatorAdd04 = 3.8;

        double addResultDouble = operatorAdd03 + operatorAdd04;
        System.out.println("addResultDouble = " + addResultDouble); // 14.0

        // 减法:-
        int operatorMinus01 = 1;
        int operatorMinus02 = 2;

        int minusResult = operatorMinus01 - operatorMinus02;
        System.out.println("minusResult = " + minusResult); // -1

        // 乘法:*
        int operatorMulti01 = 1;
        int operatorMulti02 = 2;

        int multiResult = operatorMulti01 * operatorMulti02;
        System.out.println("multiResult = " + multiResult); // 2

        // 除法:/ ,注意:除数不能为0
        int operatorDivision01 = 6;
        int operatorDivision02 = 3;

        int divisionResult = operatorDivision01 / operatorDivision02;
        System.out.println("divisionResult = " + divisionResult); // 2

        int operatorDivision03 = 6;
        int operatorDivision04 = 4;

        int divisionResult2 = operatorDivision03 / operatorDivision04;
        System.out.println("divisionResult2 = " + divisionResult2); // 1

        // 取模:%
        int mod = operatorDivision03 % operatorDivision04;
        System.out.println("mod = " + mod); // 2

    }
}

2.3 + 号的两种用法

  • ①对于 + 号两边都是数值的情况,+ 就是加法的意思。
  • ②对于 + 号两边至少一边是字符串的情况,+ 就是拼接的意思。
  • 示例:

/**
 * 加号的用法
 * <p>
 * 第一种:对于`+`两边都是数值的话,`+`就是加法的意思
 * <p>
 * 第二种:对于`+`两边至少有一边是字符串得话,`+`就是拼接的意思
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class PlusDemo {
    public static void main(String[] args) {
        String str = "Hello";
        System.out.println("str = " + str); // Hello

        System.out.println(str + "World"); // HelloWorld

        String str2 = "Java";

        System.out.println(str2 + 520); // Java520

        System.out.println(str2 + 5 + 20); // Java520
    }
}

2.4 自增自减运算

2.4.1 概述

  • ++ 运算,变量自身 +1 ;反之,-- 运算,变量自身 -1

2.4.2 单独使用

  • 变量在单独运算的使用,变量 前++ 和变量 后++ ,变量的值是一样的。
  • 变量 前++ :例如 ++a
  • 变量 后++ :例如 a++
  • 示例:

/**
 * 自增和自减
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class IncreaseAndDecrease {
    public static void main(String[] args) {
        int a = 3;
        a++;
        System.out.println("a = " + a); // a = 4

        int b = 3;
        ++b;
        System.out.println("b = " + b); // b = 4
    }
}

2.4.3 复合使用

  • 其他变量放在一起使用 或者和 输出语句在一起使用前++后++ 就产生了不同。
  • 变量 前++ :变量先自身加 1 ,然后再取值。
  • 变量 后++ :变量先取值,然后再自身加 1 。

总结:

  • ++在前,先自增,后使用。
  • ++在后,先使用,后自增。

  • 示例:

/**
 * 自增和自减
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class IncreaseAndDecrease2 {
    public static void main(String[] args) {
        int x = 3;
        int y = x++;
        System.out.println("x = " + x); // x = 4
        System.out.println("y = " + y); // y = 3

        int z = 5;

        System.out.println("z++ = " + z++); // z++ = 5
        System.out.println("z = " + z); // z = 6

        int a = 1;
        a = a++;
        System.out.println("a = " + a); // a = 1

    }
}

第三章:赋值运算符

3.1 概述

赋值运算符

符号解释

=

将符号右边的值,赋值给左边的变量

+=

将符号**左边的值**

**右边的值**

进行相加操作,最后将结果**赋值给左边的变量**

-=

将符号**左边的值**

**右边的值**

进行相减操作,最后将结果**赋值给左边的变量**

*=

将符号**左边的值**

**右边的值**

进行相乘操作,最后将结果**赋值给左边的变量**

/=

将符号**左边的值**

**右边的值**

进行相除操作,最后将结果**赋值给左边的变量**

%=

将符号**左边的值**

**右边的值**

进行取余操作,最后将结果**赋值给左边的变量**

注意:

  • 所有的赋值运算符的左边一定是一个变量
  • 扩展赋值运算符将最后的结果赋值给左边的变量前,都做了强制类型转换

3.2 应用示例

  • 示例:

/**
 * 赋值运算符
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class AssignmentOperator {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        a = a + b;
        System.out.println("a = " + a); // 7
        System.out.println("b = " + b); // 4
    }
}

  • 示例:

/**
 * 扩展赋值运算符
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class AssignmentOperator2 {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        b += a; // 相当于 b = b + a;
        System.out.println("a = " + a); // a = 3
        System.out.println("b = " + b); // b = 7

        short s = 3;
        // s = s + 4; 代码编译错误,因为将int类型的结果赋值给short类型的变量s,可能损失精度
        s += 4; // 代码没有报错,因为在得到int类型的结果后,JVM自动完成一步强制类型转换,将int类型转换成short
        System.out.println("s = " + s); // s = 7

        int j = 1;
        j += ++j * j++; // 相当于  j = j + (++j * j++);
        System.out.println(j); // 5
    }
}

第四章:关系运算符(比较运算符)

4.1 概述

关系运算符

符号解释

<

比较符号左边的数据是否小于右边的数据,如果小于结果是true。

>

比较符号左边的数据是否大于右边的数据,如果大于结果是true。

<=

比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。

>=

比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。

==

比较符号两边数据是否相等,相等结果是true。

!=

不等于符号 ,如果符号两边的数据不相等,结果是true。

注意:

  • 比较运算符,是两个数据之间进行比较的运算,运算结果一定是 boolean 值 truefalse
  • ><>=<= 不支持 boolean 和 String 类型。
  • ==!= 支持 boolean 和 String 类型。

4.2 应用示例

  • 示例:

/**
 * 关系运算符
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class RelationOperator {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;

        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); // false
        System.out.println(a != b); // true
    }
}

第五章:逻辑运算符

5.1 概述

  • 逻辑运算符,是用来连接两个 boolean 类型结果的运算符( ! 除外),运算结果一定是 boolean 类型值 truefalse
    逻辑运算符,是用来连接两个 boolean 类型结果的运算符( ! 除外),运算结果一定是 boolean 类型值 truefalse

逻辑运算符

符号解释

符号特点

&

与,且

falsefalse

|

truetrue

^

异或

相同为 false,不同为 true

!

falsetrue

truefalse

&&

双与,短路与

左边为 false ,则右边就不看

||

双或,短路或

左边为 true ,则右边就不看

5.2 应用示例

  • 示例:

/**
 * 逻辑运算符
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class LogicOperator {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        // & 与,且;有false则false
        System.out.println((a > b) && (a > c)); // false
        System.out.println((a < b) && (a < c)); // true
        System.out.println((a < b) && (a > c)); // false
        System.out.println((a > b) && (a < c)); // false
        System.out.println("===============");

        // | 或;有true则true
        System.out.println((a > b) | (a > c)); // false
        System.out.println((a > b) | (a < c)); // true
        System.out.println((a < b) | (a > c)); // true
        System.out.println((a < b) | (a < c)); // true
        System.out.println("===============");

        // ^ 异或;相同为false,不同为true
        System.out.println((a > b) ^ (a > c)); // false
        System.out.println((a > b) ^ (a < c)); // true
        System.out.println((a < b) ^ (a > c)); // true
        System.out.println((a < b) ^ (a < c)); // false
        System.out.println("===============");

        // ! 非:非false则true,非true则false
        System.out.println(!false); // true
        System.out.println(!true); // false

    }
}

5.3 &&& 区别,|||区别

  • **&&****&** 区别:&&& 结果一样,&& 有短路效果,左边为 false ,右边不执行;& 左边无论是什么,右边都会执行。
  • **||****|** 区别:||| 结果一样,|| 有短路效果,左边为 true ,右边不执行;| 左边无论是什么,右边都会执行。

第六章:条件运算符(三元运算符)

6.1 概述

  • 语法:

条件表达式 ?结果1:结果2

  • 条件表达式的结果是 true ,条件运算符整体结果为结果 1 ,赋值给变量。
  • 条件表达式的结果是 false ,条件运算符整体结果为结果 2 ,赋值给变量。

6.2 应用示例

  • 示例:

/**
 * 三元运算符
 *
 * @author GUO
 * @version 1.0
 * @since 2022-11-16
 */
public class ConditionOperator {
    public static void main(String[] args) {
        int i = (1 == 2) ? 100 : 200;
        System.out.println("i = " + i); // i = 200

        int j = (3 <= 4) ? 500 : 600;
        System.out.println("j = " + j); // j = 500
    }
}

第七章:运算符的优先级(了解)

注意:

  • 表达式不要太复杂。
  • 先算的使用 () ,提升优先级。
  • 大体的排序:算术->位-->比较-->逻辑-->三元-->赋值。

 

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

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

相关文章

vue3.0找不到模块“./App.vue”或其相应的类型声明

vue3报错提示 找不到模块“/App.vue”或其相应的类型声明 情况一、vue3.0js 报错原因&#xff1a;javascript只能理解.js文件&#xff0c;无法理解.vue文件。 解决方案&#xff1a;根目录新建jsconfig.json {"compilerOptions": {"baseUrl": "./&qu…

被取消的AP考试到底是什么嘞?

最近&#xff0c;好多考试都延期或取消了&#xff0c;美国大学理事会&#xff08;College Board&#xff09;也发布公告&#xff0c;宣布受疫情影响&#xff0c;上海、北京等地的AP考试正式取消&#xff0c;不提供线上考试的机会&#xff0c;而且不会安排后续补考。 这条消息惊…

芯片漫游指南(5)-- UVM寄存器

目录1.寄存器模型概览1.1 概述1.2 uvm_reg相关概念1.3 MCDF寄存器模型1.4 寄存器建模1.5 模型使用流程2.寄存器模型集成2.1 总线UVC的实现2.2 纵向UVC的示例3.寄存器模型的常规方法3.1 mirror、desired和actual value3.2 prediction的分类3.3 uvm_reg的访问方法3.4 mem与reg的联…

python扩展实现方法--python与c混和编程

大部分的Python的扩展都是用C语言写的&#xff0c;但也很容易移植到C中。 一般来说&#xff0c;所有能被整合或者导入到其它python脚本的代码&#xff0c;都可以称为扩展。 扩展可以用纯Python来写&#xff0c;也可以用C或者C之类的编译型的语言来扩展。 就算是相同的架构的两…

Spring Boot学习篇(三)之通用mapper的使用(oracle版)

Spring Boot学习篇(三)之通用mapper的使用(oracle版) 1 配置pom.xml <parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.7.2</version></parent> <de…

概念辨析|电子文件单轨制与电子档案单套制

电子文件单轨制和电子档案单套制是档案业务中的重要概念&#xff0c;在建设数字中国的时代背景下&#xff0c;厘清“套”与“轨”的区别和联系是革新档案工作的基础 产生背景 随着信息技术的不断发展和政务信息化的持续推进&#xff0c;电子文件逐渐在业务工作中大量出现&…

从工具到实践:如何在GitHub上保障开源项目安全?

1998年&#xff0c;Christine Peterson创造了 “开源软件”这个词。她解释道&#xff1a;“这是刻意为之&#xff0c;为了让其他人更容易理解这个领域”。同年&#xff0c;O’Reilly组织了首届“开源峰会”。 开源软件受到更多人青睐原因在于&#xff0c;用户对软件拥有更多的…

【圣诞节】简单代码实现圣诞树|圣诞贺卡 | 快来为心爱的她送上专属的圣诞礼物叭~

圣诞节马上就要到了&#xff0c;不知道给自己喜欢的人准备什么样的惊喜吗&#xff1f;作为一名程序员&#xff0c;当然是用编程制作专属于她or他的圣诞树&#xff01; 目录 &#x1f384;圣诞树 ✨3D圣诞树 代码块 打开方式 修改位置 效果展示 ✨音乐律动圣诞树 代码块…

详解 Vue 过渡 transition 动画 animation 并结合第三方库 animation.css 和 gsap

transition vue过渡组件 标签自带类名 触发时机默认类名 自定义类名 <transition name"xxx"> 自定义行内式类名 方便结合第三方库 transition 钩子 接收参数el enter 和leave 第二个参数 done 可以 决定 after-enter after-leave 的 周期内的执行时机 v-…

YonBuilder移动开发平台 AVM框架 封装虚拟数字键盘组件

AVM&#xff08;Application-View-Model&#xff09;前端组件化开发模式基于标准Web Components组件化思想&#xff0c;提供包含虚拟DOM和Runtime的编程框架avm.js以及多端统一编译工具&#xff0c;完全兼容Web Components标准&#xff0c;同时兼容Vue和React语法糖编写代码&am…

Codeforces Round #697 (Div. 3) E. Advertising Agency

翻译&#xff1a; 玛莎在一家广告公司工作。为了推广新品牌&#xff0c;她想和一些博主签约。玛莎总共有&#x1d45b;个不同的博主。编号为&#x1d456;的博主拥有&#x1d44e;&#x1d456;名粉丝。 由于玛莎的预算有限&#xff0c;她只能与&#x1d458;不同的博主签约。…

LeetCode动态规划—跳跃游戏从跳到头到跳最少下跳到头(45、55)

跳跃游戏跳跃游戏跳跃游戏Ⅱ跳跃游戏 一个下标对应的值为3&#xff0c;那证明这个位置可以跳到前后3个位置的下标处。&#xff08;3均可达&#xff09; 如果依次遍历完这个数组&#xff0c;有下标在跳跃过程中最远位置仍然不可达&#xff0c;即证明无法到达最后一个位置。 可以…

js实现九宫格抽奖功能

分享一下js的九宫格抽奖功能 首先是html部分&#xff1a; <div class"box"><div class"div2">短裙</div><div class"div3">口红</div><div class"div4">草莓</div><div class"div…

【vue】控制台中如何移除数组arr中的值?如何给数组arr中放值?

移除数组arr属性中的值&#xff1a;vm.arr.shift() 新增数组arr属性中的值&#xff1a;vm.arr.push(‘属性值’) 移除atguigu3样式后效果&#xff1a; 向数组arr中添加样式值后效果&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta…

FlinkSql开窗实例:消费kafka写入文本

前言 以前写Flink从kafka入hdfs因为业务需求和老版本缘故都是自定义BucketSink入动态目录中&#xff0c;对于简单的需求可以直接用Flink SQL API进行输出。Flink版本1.13.1。 Flink官网示例 准备 本地下载个kafka&#xff08;单机即可&#xff09;&#xff0c;新建个桌面目…

Unreal 读写自定义配置文件

基础 首先需要自定义一个继承自UObject的类&#xff0c;UCLASS加上config标志 UCLASS(config MyClass) class UMyClass: public UObject将想要和配置文件交互的属性&#xff0c;UFUNCTION加上Config标志 UPROPERTY(Config, EditAnywhere) float TestP;之后只要配置文件内存…

【日常系列】LeetCode《21·综合应用3》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 217 &#xff1a;存在重复元素 https://leetcode.cn/problems/contains-duplicate/ 提示&#xff1a; 1 < nums.length < 10^5 -10^9 < nums[…

Python基础教程(2)——列表、元组、字典、集合、斐波纳契数列、end 关键字、条件控制、循环语句

1.列表 &#xff08;1&#xff09;删除列表的元素 list [Google, Runoob, 1997, 2000] print ("原始列表 : ", list) del list[2] print ("删除第三个元素 : ", list)&#xff08;2&#xff09;Python列表脚本操作符 &#xff08;3&#xff09;嵌套列表…

Arco 属性

文章目录Arco介绍1. 简介1.1 背景1.2 运行环境1.3 浏览器兼容性2. 设计价值观2.1 清晰2.2 一致2.3 韵律2.4 开放3. 设计原则3.1 及时反馈3.2 贴近现实3.3 系统一致性3.4 防止错误发生3.5 遵从习惯3.6 突出重点3.7 错误帮助3.8 人性化帮助4. 界面总体风格4.1 页面风格4.1.1 主色…

知识答题小程序如何制作_分享微信答题抽奖小程序制作步骤

知识答题小程序如何制作&#xff1f;现在越来越多的企业和组织逐步进行各种获奖知识问答小程序。那么&#xff0c;如何制作一个答题小程序呢&#xff1f;今天&#xff0c;我们一起来看看~需要的老板不要走开哦~既然点进来了&#xff0c;那就请各位老板耐心看到最后吧~怎么做一个…