【Java系列】还在为Java运算符而烦恼吗?一篇文章带你解答心中烦恼

news2024/11/26 8:26:33

 
      返回主篇章
        👇
【Java】才疏学浅·小石Java问道之路


Java基本运算符

  • 1. 算数运算符
    • 分类
    • 运算法则
  • 2. 关系运算符
    • 分类
    • 注意项
  • 3. 逻辑运算符
    • 分类
    • 运算法则
  • 4. 短路逻辑运算符
    • 分类
    • 运算法则
  • 5. 赋值运算符
    • 拓展
  • 6. 三元运算符
    • 格式
    • 运算法则
  • 7. 自增自减运算符
    • 分类
    • 使用方式:
    • 注意项
    • 区分 ++a 和 a++
  • 小结

1. 算数运算符

分类

算数运算符包括: +   -   *   /   %

运算法则

+   -   * 的运算方法和小学数学中的运算方法一模一样

  /  
1.整数相除得到的结果只能是整数,如果结果需要小数,则相除必须要有小数参与
2.小数直接参与运算,得到的结果并不精确

举例

public class Demo {
    public static void main(String[] args) {
        System.out.println(10/3);
        System.out.println(10.0/3);
    }
}

运算结果

在这里插入图片描述

%: 取余、取模
两个数相除,取两个数相除得到的余数

举例

public class Demo {
    public static void main(String[] args) {
        System.out.println(10%2); 、、
        System.out.println(10%3);
    }
}

运算结果

在这里插入图片描述
应用场景

根据得到的余数的结果是 0 或者 1 可以判断一个数是奇数还是偶数

2. 关系运算符

关系运算符又称作比较运算符

分类

符号解释
==就是判断左边跟右边是否相等,如果成立就是true,如果不成立就是false
!=就是判断左边跟右边是否不相等,如果成立就是true,如果不成立就是false
>就是判断左边是否大于右边,如果成立就是true,如果不成立就是false
>=就是判断左边是否大于等于右边,如果成立就是true,如果不成立就是false
<就是判断左边是否小于右边,如果成立就是true,如果不成立就是false
<=就是判断左边是否小于等于右边,如果成立就是true,如果不成立就是false

注意项

  • 关系运算符最终的结果一定是布尔类型的。要么是true,要么是false
  • 在比较两个数是否相等的时候 == 千万不要写成 =

3. 逻辑运算符

分类

逻辑运算符包括: &   |   ^   !

运算法则

& 和 | 的使用:

&:逻辑与(而且)

​ 两边都为真,结果才是真,只要有一个为假,那么结果就是假。

|:逻辑或(或者)

​ 两边都为假,结果才是假,只要有一个为真,那么结果就是真。

举例

public class Demo {
    public static void main(String[] args) {
        // &  
        //两边都是真,结果才是真。
        System.out.println(true & true);//true
        System.out.println(false & false);//false
        System.out.println(true & false);//false
        System.out.println(false & true);//false

        System.out.println("===================================");

        // | 或   
        //两边都是假,结果才是假,如果有一个为真,那么结果就是真。
        System.out.println(true | true);//true
        System.out.println(false | false);//false
        System.out.println(true | false);//true
        System.out.println(false | true);//true
    }
}

^(异或)的使用:

开发中运用的不多,了解即可

举例

public class Demo {
    public static void main(String[] args) {
        // ^   
        // 左右不相同,结果才是true,左右相同结果就是false
        System.out.println(true ^ true);//false
        System.out.println(false ^ false);//false
        System.out.println(true ^ false);//true
        System.out.println(false ^ true);//true
    }
}

! (取反)的使用:

计算规则:false取反就是true,true取反就是false

举例

public class Demo {
    public static void main(String[] args) {
        System.out.println(!false);//true
        System.out.println(!true);//false

        System.out.println(!!false);//注意点:取反最多只用一个。
    }
}

温馨提示:取反最多只用一个。

4. 短路逻辑运算符

分类

&&   ||

运算法则

&&:

​ 运算结果跟&是一模一样的,只不过具有短路效果。

||:

​ 运算结果跟|是一模一样的。只不过具有短路效果。

逻辑核心:

​ 当左边不能确定整个表达式的结果,右边才会执行。

​ 当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。

总结:

&& 和 & 、||和|的运行结果都是一模一样的。

​ 但是短路逻辑运算符可以提高程序的运行效率。

5. 赋值运算符

最常用的 =
把等号右边的结果赋值给左边的变量

举例

public class Demo {
    public static void main(String[] args) {
        //1.最为简单的赋值运算符用法
        int a = 10;//就是把10赋值给变量a
        System.out.println(a);

        //2.如果等号右边需要进行计算。
        int b = 20;
        int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(c); // 30

        //3.特殊的用法
        a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(a); //20
    }
}

拓展

+=、-=、*=、/=、%=
把左边跟右边进行运算,把最终的结果赋值给左边,对右边没有任何影响

举例

public class Demo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a += b;//把左边和右边相加,再把最终的结果赋值给左边,对右边没有任何影响
        // 相当于 a = a + b;
        System.out.println(a);//30
        System.out.println(b);//20
    }
}

6. 三元运算符

格式

关系表达式 ? 表达式1 :表达式2 ;

运算法则

  • 计算关系表达式的值。
  • 如果关系表达式的值为真,那么执行表达式1。
  • 如果关系表达式的值为假,那么执行表达式2。

注意

三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来。

举例

public class Demo {
    public static void main(String[] args) {
        //需求:求两个数的较大值
        int a = 10;
        int b = 20;

        //格式:关系表达式 ? 表达式1 : 表达式2 ;
        //注意点:
        //三元运算符的最终结果一定要被使用。
        //要么赋值给一个变量,要么直接输出。
        int max =  a > b ? a : b ;
        System.out.println(max);
        
        System.out.println(a > b ? a : b);
    }
}

7. 自增自减运算符

分类

++  自增运算符  就是把变量里面的值+1
--  自减运算符  就是把变量里面的值-1

使用方式:

  • 放在变量的前面,我们叫做先++。 比如:++a
  • 放在变量的后面,我们叫做后++。 比如:a++

注意项

​不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

区分 ++a 和 a++

++a
首先将a的值自增1,再把运算的结果当作表达式的值参与运算
a++
首先将a作为表达式的值参与运算,再让a自增1

举例

public class Demo {
    public static void main(String[] args) {
        int a = 10;
        // a++ 先作为表达式的值打印结果 再自增1
        System.out.println(a++); //10
        System.out.println(a);   //11
        int b = 10;
        // ++b 先自增1 再作为表达式的值打印结果
        System.out.println(++b); //11
    }
}

小结

本章主要对Java基本运算符做了一个简单的介绍,每个运算符讲解的后面都会附带一个小demo,通过小demo的示例,可以更加清楚了解这些运算符的特点。
下一章的内容更加精彩,敬请期待哦~
如果有什么问题,欢迎在下方评论留言~ ♥♥♥

💙💙💙💙💙💙
 
Author:    小石.     
Date:  2022.12.26
 
💙💙💙💙💙💙

  • 1、如果觉得文章写行不错就点个 。✌
  • 2、如果觉得写得好就 一键三连吧~ ✌✌✌

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

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

相关文章

12-Golang中的嵌套分支以及switch语句的用法

Golang中的嵌套分支以及switch语句的用法嵌套分支基本介绍基本语法switch基本介绍基本语法流程图使用细节嵌套分支 基本介绍 在一个分支结构中又完整的嵌套了另一个完整的分支结构&#xff0c;里面的分支的结构称为内层分支外面的分支结构称为外层分支 基本语法 if 条件表达…

声明式服务调用OpenFeign

文章目录一. OpenFeign1. Feign 与 OpenFeign二. OpenFeign的使用三. OpenFeign自定义配置1. 修改日志级别2. 超时控制四. OpenFeign性能优化五. OpenFeign最佳实践1. 继承2. 抽取PS: 本文为作者学习笔记&#xff0c;实际技术参加意义不大&#xff0c;本文将持续改进完善。 一…

Doris(二)

目录1、Doris数据的导入和导出1.1 数据导入1.1.1 Broker Load1.1.1.1 适用场景1.1.1.2 基本原理1.1.1.3 基本语法1.1.1.4 导入示例1.1.1.5 查看导入1.1.1.6 取消导入1.1.2 Stream Load1.1.2.1 适用场景1.1.2.2 基本原理1.1.2.3 基本语法1.1.2.4 导入示例1.1.2.5 取消导入1.1.3 …

蓝牙耳机什么牌子好?性价比最高的蓝牙耳机排行榜

近年来&#xff0c;蓝牙耳机品牌与日俱增&#xff0c;可供人们选择的范围也越来越大。当然&#xff0c;主打性价比的蓝牙耳机品牌也有很多&#xff0c;下面&#xff0c;我来给大家分享几款性价比最高的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱蓝牙耳机 售价&#…

寒潮来袭,这款产品在跨境电商市场卖脱销

年底的寒潮来袭&#xff0c;全球市场热销产品分析跨境电商在年底冬季属于销售旺季&#xff0c;大多数的跨境电商卖家们都开始尽情努力&#xff0c;争取今年获得大批收入&#xff0c;在这个年底既是旺季也是困难季。2022年底旺季时分&#xff0c;有不少产品在跨境电商市场卖脱销…

jQuery index()

jQuery index() 概述 在jQuery中&#xff0c;我们可以使用index()方法来获取当前jQuery对象集合中“指定元素”的索引值。 语法 $(元素).index()说明 index()方法可以接受一个“jQuery对象”或“DOM对象”作为参数&#xff0c;不过一般情况下&#xff0c;我们很少会使用到…

Idea常用快捷键(MacOS和Win平台)持续更新ing~

小名在刚换MacOS系统时总结的一些Idea快捷键&#xff0c;这里小名把Win的对比快捷键和功能都列出来&#xff0c;方便像小名这样“肌肉记忆”的小伙伴顺利过渡&#xff5e; 当然&#xff0c;这些都是小名平日工作常用的快捷键&#xff0c;不熟悉这些快捷键的Win平台小伙伴也可以…

springboot的核心注解详解

springboot的注解详解 Spring Boot 主要优势之一&#xff0c;就是“开箱即用&#xff0c;远离繁琐的配置”。 Spring Boot 架构没有代码生成&#xff0c;也不需要XML配置&#xff0c;有效避免大量的 Maven 导入和各种版本冲突&#xff0c;为 Spring 开发提供一个更快、更广泛…

数字ic后端|分享后端项目中一次分析解决问题的过程

后端ICer经常会在项目中遇到问题&#xff0c;如何解决问题&#xff0c;则体现出经验。今天遇到的一个问题&#xff0c;这里做个记录。同时也希望通过读这篇文章&#xff0c;你也能增加一个解决问题的经验。 相对来说&#xff0c;前端更多的是理论&#xff0c;后端更多的是需要…

Java基础:Lambda表达式方法引用

在使用Lambda表达式的时候&#xff0c;我们实际上传递进去的代码就是一种解决方案&#xff1a;拿什么参数做什么操作。那么考虑一种情况&#xff1a;如果我们在Lambda中所指定的操作方案&#xff0c;已经有地方存在相同方案&#xff0c;那是否还有必要再写重复逻辑&#xff1f;…

学习Python中turtle模块的基本用法(6:其它函数)

除了之前文章中介绍的turtle模块的绘图函数&#xff0c;本文从turtle帮助文档中梳理了其它绘图或状态函数&#xff0c;编写复杂的绘图函数时也用得到&#xff0c;函数清单如下表所示&#xff1a; 序号函数名称说明1turtle.home返回初始坐标 (0,0)&#xff0c;并设置朝向为初始…

MySQL重复与不重复问题

1.查询某个字段不重复的记录 当某个字段有重复的数据&#xff0c;而其他字段数据不一样时&#xff0c;需要查询这些不重复的记录&#xff0c;可以使用distinct关键字配合group by进行查询。 1&#xff09;先看所有的数据 2&#xff09;根据name查询不重复的记录 基本语法 s…

记一次线上fullgc----数据库查询返回大量数据

背景 某服务线上16台机器&#xff0c;晚上八点左右有4台机器突然出现fullgc&#xff0c;而且不止一次 处理流程 1&#xff09;发现机器full gc告警时&#xff0c;立即dump出机器内存快照 2&#xff09;下线问题机器 3&#xff09;分析内存快照&#xff0c;找到问题对象 可以…

JAVA中IO面试题

1.什么是IO I:Input O:Output 通过IO可以完成硬盘文件的读和写。 IO流又叫输入输出流 &#xff0c;输入和输出均是以内存作为参照物。 2. I/O流的分类? 2.1 输入流&#xff0c;输出流 以内存作为参照物&#xff0c; 往内存中去&#xff0c;叫做输入&#xff0c;或者叫做读…

【OpenFeign】【源码+图解】【六】创建FeignClient接口的代理(下)

【OpenFeign】【源码图解】【五】创建FeignClient接口的代理&#xff08;上&#xff09; 目录6.2 RequestTemplate.Factory6.3 创建SynchronousMethodHandler6.4 创建FeignInvocationHandler7. FeignInvocationHandler处理HTTP请求6.2 RequestTemplate.Factory 先看下类图 从类…

sql查询中遇到的一些小小注意点

1.sql子查询 // 最外层查询是查子查询中查询出来的结果 SELECTserverId,sum(revenue) as revenue,sum(orderCount) as orderCount,sum(refundCount) as refundCount,sum(guideRevenue) as guideRevenue,sum(cardCount) as cardCount,sum(activityCount) as activityCount,sum(…

笔试强训(7)

第一题:两种排序方法(网易)两种排序方法_牛客题霸_牛客网 题目描述:考拉有N个字符串&#xff0c;任意两个字符串的长度都不是相同的&#xff0c;考拉现在学习到了两种字符串的排序方法 1)根据字符串的字典序排序&#xff0c;比如说 "car"<"carriage"<…

CodeQL的自动化代码审计之路(下篇)

0x01 前言 CodeQL的自动化代码审计之路&#xff08;上篇&#xff09; CodeQL的自动化代码审计之路&#xff08;中篇&#xff09; 在上一篇文章中&#xff0c;我们基于CodeQL官方提供的sdk实现了自动化查询数据库功能&#xff0c;在文章中也提到实现完整的自动化代码审计还缺…

ggokabeito | 一般般啵~支持ggplot2和ggraph的配色包!~

1写在前面 天真的好冷啊&#xff0c;不知道各位穿秋裤了没有&#xff0c;有没有感冒。&#x1f618; 这期就介绍一下ggokabeito包&#xff0c;是一个支持ggplot2和ggraph的即用型配色包&#xff0c;喜欢就去安装吧。&#x1f92a; 再放一张去年拍的雪人照片&#xff0c;哈哈哈哈…

socket网络编程的5大误区

隐患 1&#xff0e;忽略返回状态 第一个隐患很明显&#xff0c;但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态&#xff0c;当它们失败或部分成功的时候&#xff0c;您也许会迷失。反过来&#xff0c;这可能传播错误&#xff0c;使定位问题的源头变得困难。 捕…