【Java】基础篇-运算符与表达式-自增自减

简介: 【Java】基础篇-运算符与表达式-自增自减

 😸个人主页👉神兽汤姆猫

📖系列专栏🔥编程语言环境配置JavaJava面试    

💕如果此篇文章对您有帮助的话,请点赞转发收藏这对我有很大的帮助。

运算符:对常量或变量进行操作的符号。

表达式:用运算符把常量或变量连接起来符合Java语法的式子即是表达式。

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

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

image.gif

以上案例中,+是运算符,且是算数运算符。a + b是表达式,由于+是算数运算符,故此表达式称为算数表达式。

算数运算符

符号 作用 说明
+ 就是你能理解日常生活的加
- 就是你能理解日常生活的减
* 同 x号
/ 同÷号。整数相除,结果只能得整数,如果想得到有小数得结果,必须加入浮点类型(小数)的运算。取得是商。
% 取余/取模 获取是两个数据做除法的余数/取余数

字符+操作

ASCII码表:美国信息交换表中代码,是计算机中字节到字符得一套对应关系。

int a = 10;
char b = 'a';
System.out.println(a + b);

image.gif

在上例中,a+b的运算中,a为int类型,b为char类型

Java基础篇类型转换专题,提到过(当 byte、short、char、int在一起运算时,都会提升至int后,在进行运算)

char提升int的过程之中,就是查找ASCII码表中字符所对应的数值表示形式

字符a查找到数值的97之后,在和数值10进行运算,结果为107,即输出结果为:107

字符串+操作

+操作出现字符串时,这个+就是[字符串连接符],而不是算数运算。

+操作时,如果出现字符串,则为连接运算符,否则为算数运算。当连续进行+操作时,从左到右逐个执行。

public static void main(String[] args) {
    System.out.println("神兽汤姆猫"+ 1314);//神兽汤姆猫1314
    System.out.println("神兽汤姆猫"+ false);//神兽汤姆猫false
    System.out.println("神兽汤姆猫"+ 77.88);//神兽汤姆猫77.88
    System.out.println(520+1314+"神兽汤姆猫");//1834神兽汤姆猫,在+操作时,如果出现字符串,则为连接运算符,否则为算数运算。当连续进行+操作时,从左到右逐个执行
    System.out.println("9+9="+8+7);//9+9=87
    System.out.println("9+9="+(8+7));//加括号,提升优先级,即可得到8+7=15,也就是9+9=15
}

image.gif

案例:输入四位数,并将其拆分为个位、十位、百位、千位,并输出。

import java.util.Scanner;
public class Demo {
    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;
        //千位数
        int qian = num /10 /10 /%10 10;
        //
        System.out.println("整数"+num+"的个位是"+ ge);
        System.out.println("整数"+num+"的十位是"+ shi);
        System.out.println("整数"+num+"的百位是"+ bai);
        System.out.println("整数"+num+"的千位是"+ qian);
    }
}

image.gif

自增自减运算符

符号 作用 备注
++ 自增 变量值自身加1
-- 自减 变量值自身减1

+ +- -既可以放在变量前,也可以放在变量后

注意:单独使用时,+ +- -无论是放在变量前和变量后,结果是一样的

参与操作时

++在前:先对变量做自增(++)或自减(--),然后在拿变量参与操作。

++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--)

最常见方式为单独使用。

+ +- -只可以操作变量,不可以操作常量。

public static void main(String[] args) {
   //单独使用时,如下,一句代码中只做了++或--
    int a = 10;
    a++;// a = a +1
    System.out.println(a);//11
    int c = 10;
    ++c;// a = a +1
    System.out.println(c);//11
    int b = 10;
    b--;// a = a -1
    System.out.println(b);//9
    int d = 10;
    --d;// a = a -1
    System.out.println(d);//9
}

image.gif

public static void main(String[] args) {
    //如果参与操作,则:
    //++在前:先对变量做自增(++)或自减(--),然后在拿变量参与操作
    //++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--)
    int a = 10;
    int b = ++a;//先对变量做自增(++)或自减(--),然后在拿变量参与操作
    System.out.println(a);//11
    System.out.println(b);//11
    int aa = 10;
    int bb = aa++;////++在后:先对变量原本值,取出参与操作,随后在进行自增(++),自减(--)
    System.out.println(aa);//11
    System.out.println(bb);//10
    //
    int num = 1234;
    System.out.println(num++);//1234
    System.out.println(num);//1235
}

image.gif

赋值运算符

符号 作用 示例 备注
= 赋值 a=10,将10赋值给变量a 将符号右侧的数据,赋值给左边
+= 加后赋值 a+=b,将a+b的值,赋值给a 将符号左右两边的数据,做加法运算,结果赋值给左边
-= 减后赋值 a-=b,将a-b的值,赋值给a 将符号左右两边的数据,做减法运算,结果赋值给左边
*= 乘后赋值 a*=b,将axb的值,赋值给a 同理
/= 除后赋值 a/=b,将a÷b的商,赋值给a 同理
%= 取余后赋值 a%=b,将a÷b的余,赋值给a 同理

扩展的赋值运算符隐含了强制类型转换

关系运算符

符号 作用 示例 备注
== 相等 a = =b,判断a和b的值是否相等,成立为true,不成立为false
!= 不相等 a != b,判断a和b的值是否不想等,成立为true,不成立为false
> 大于 a > b,判断a是否大于b,成立为true,不成立为false
>= 大于等于 a >= b,判断a是否大于等于b,成立为true,不成立为false
< 小于 a < b,判断a是否小于b,成立为true,不成立为false
<= 小于等于 a <= b,判断a是否小于等于b,成立为true,不成立为false
public static void main(String[] args) {
    System.out.println(10 > 30);//false
    System.out.println(10 >= 30);//false
    System.out.println(10 <= 30);//true
    System.out.println(10 < 30);//true
    System.out.println(10 != 30);//true
    System.out.println(10 == 30);//false
}

image.gif

逻辑运算符

在生活中如果我们需要表达某个数据a,大于10,小于20,我们一般这样表示:10<a<20,但这只符合生活中数学语法。

在Java中,我们则需要对其进行拆解再合并进行表达。

拆解:a>10和a<20

合并:a>10&a<20 //a>10并且a<20

作用:用于[整合]多个比较表达式的条件:

连接多个比较表达式

连接true或false

最终得到的结果都是boolean类型的true或false

符号 作用 备注
&(逻辑与) 并且 遇到false则false,只有符号左右两边同时为true,结果才为true
|(逻辑或) 或者 遇到true则true,只有符号左右两边同时为false,结果才为false
!(逻辑非) 取反 反过来
^(逻辑异或) 相同为false,不同为true
public static void main(String[] args) {
    System.out.println("------以下为与&的示例输出-------");
    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
    System.out.println("------以下为非!的示例输出-------");
    System.out.println(! true);//false
    System.out.println(!! true);//true
    System.out.println("------以下为异或^的示例输出-------");
    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为女,男女可以,男男或者女女就不可以。
}

image.gif

短路逻辑运算符

符号 作用 备注
&& 短路与 和&作用相同,都是并且的作用,但是有短路效果
|| 短路或 和| 作用相同,都是或者的作用,但是有短路效果

&和&&的区别?:

&没有短路效果,无论符号左边是true还是false,右边都要继续执行。

&&具有短路效果,符号左边为false时,右边就不执行了。如果符号左边为true,右边则要继续执行。

即:

    1. 逻辑与&:无论左边真假,右边都要执行。
    2. 短路与&&:如果左边为真,右边执行。如果左边为假,右边不执行
    3. 逻辑或|:无论左边真假,右边都要执行。
    4. 短路或||:如果左边为假,右边执行。如果左边为真,右边不执行。  

    三元运算符

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

    执行流程:

      1. 先计算关系表达式的值
      2. 值为true,取表达式1的值
      3. 值为false,取表达式2的值

      案例:差莱坞有三个鸡,我们通过称重,知道它们重量分别为29Kg、30Kg、70Kg,我们需要使用程序来获取最重的那个

      public static void main(String[] args) {
          //定义三个变量存储鸡的体重,单位为kg,但现在我们只需要体现数值,分别命名ikun a、ikun b、ikun c
          int a = 29;//定义变量保存体重
          int b = 30;//定义变量保存体重
          int c = 70;//定义变量保存体重
          //用三元运算符,比较前两个变量,获取最大值。使用临时变量(tempD)进行存储结果
          int tempD = (a>b) ? a : b;//比较前两个变量,获取最大值
          //用三元运算符,让较大的值和第三个变量c比较,获取最大值
          int d = (tempD>c) ? tempD : c;//较大值和第三个变量比较,获取最大值
          //或者将上面的两条三元运算符整合为一条,具体如下所示:
          int result = a > b ? a : b > c ? a > b ? a : b : c;
          System.out.println(d);//输出结果:
          System.out.println(result);//第二种输出结果:
      }

      image.gif

      💕如果此篇文章对您有帮助的话,请点赞转发收藏这对我有很大的帮助。

      相关文章
      |
      2月前
      |
      存储 Java
      # 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
      本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
      45 12
      |
      1月前
      |
      缓存 监控 Java
      深入解析java正则表达式
      本文深入解析Java正则表达式的应用,从基础概念到实际开发技巧全面展开。正则表达式是一种强大的文本处理工具,广泛应用于格式验证、搜索替换等场景。Java通过`Pattern`和`Matcher`类支持正则表达式,`Pattern.compile()`方法将正则字符串编译为高效模式对象。文章详细介绍了核心类的功能、常用正则语法及实际案例(如邮箱和电话号码验证)。掌握这些内容,可显著提升文本处理能力,满足多种开发需求。
      63 1
      |
      1月前
      |
      Java 编译器 API
      Java Lambda 表达式:以 Foo 接口为例深入解析
      本文深入解析了 Java 8 中 Lambda 表达式的用法及其背后的函数式接口原理,以 `Foo` 接口为例,展示了如何通过简洁的 Lambda 表达式替代传统匿名类实现。文章从 Lambda 基本语法、函数式接口定义到实际应用层层递进,并探讨默认方法与静态方法的扩展性,最后总结常见误区与关键点,助你高效优化代码!
      56 0
      |
      2月前
      |
      SQL Rust Java
      怎么理解Java中的lambda表达式
      Lambda表达式是JDK8引入的新语法,用于简化匿名内部类的代码写法。其格式为`(参数列表) -&gt; { 方法体 }`,适用于函数式接口(仅含一个抽象方法的接口)。通过Lambda表达式,代码更简洁灵活,提升Java的表达能力。
      |
      2月前
      |
      SQL IDE 算法
      《从头开始学java,一天一个知识点》之:运算符与表达式:算术、比较和逻辑运算
      **你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问&quot;`a==b`和`equals()`的区别&quot;,大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列为你打造Java「速效救心丸」,每天1分钟,地铁通勤、午休间隙即可完成学习。直击高频考点和实际开发中的「坑位」,拒绝冗长概念,每篇都有可运行的代码示例。明日预告:《控制流程:if-else条件语句实战》。
      50 6
      |
      2月前
      |
      Java
      课时15:Java运算符(基础数学运算符)
      课时15介绍了Java中的基础数学运算符,涵盖加、减、乘、除及自增自减运算。强调了运算符的优先级和使用括号的重要性,并通过范例展示了四则运算与自增自减的具体应用。提醒编写代码时应保持简洁,避免复杂的表达式,确保代码易读性和可维护性。
      |
      2月前
      |
      Java
      课时17:Java运算符(关系运算符)
      范例:进行关系判断。如果要进行关系运算的操作可使用:>、<、>=、<=、!=(不等于)、==。所有的关系运算符判断完成的数据返回结果都是布尔类型(boolean)。只要使用关系运算符进行逻辑判断,最终的结果就是布尔型,只有true和false两种结果,而且能和if语句结合使用。
      |
      2月前
      |
      Java
      课时16:Java运算符(三目运算符)
      范例:将两个变量值在大的内容赋值给新变量。三目是一种赋值运算,它指的是根据条件来进行判断。(根据判断的结果来决定赋值内容)对于三目运算的基本使用语法如下: 数据类型 变量 = 布尔表达式 ?条件满足时赋值内容:条件不满足时:赋值内容
      |
      2月前
      |
      Java 程序员 数据处理
      课时19:Java运算符(位运算符)
      课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
      |
      2月前
      |
      Java
      课时18:Java运算符(逻辑运算符)
      课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。

      热门文章

      最新文章