【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

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

      相关文章
      |
      5天前
      |
      存储 Java
      java中的常见运算符的计算方式
      本文介绍了计算机中二进制数的原码、反码和补码的概念及其转换方式。原码是符号位加真值的绝对值;反码中正数不变,负数其余位取反;补码在反码基础上加1。文章还详细解释了Java中的常见运算符(如按位与、或、异或、移位等)如何基于二进制进行计算,并探讨了使用补码的原因,包括统一符号位处理和扩展表示范围。通过具体代码示例帮助理解这些概念。
      java中的常见运算符的计算方式
      |
      1月前
      |
      Java API 开发者
      Java中的Lambda表达式与Stream API的协同作用
      在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
      |
      2月前
      |
      Java API 开发者
      Java中的Lambda表达式:简洁代码的利器####
      本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
      |
      2月前
      |
      并行计算 Java 编译器
      深入理解Java中的Lambda表达式
      在Java 8中引入的Lambda表达式,不仅简化了代码编写,还提升了代码可读性。本文将带你探索Lambda表达式背后的逻辑与原理,通过实例展示如何高效利用这一特性优化你的程序。
      |
      2月前
      |
      搜索推荐 Java API
      探索Java中的Lambda表达式
      本文将深入探讨Java 8引入的Lambda表达式,这一特性极大地简化了代码编写,提高了程序的可读性。通过实例分析,我们将了解Lambda表达式的基本概念、使用场景以及如何优雅地重构传统代码。文章不仅适合初学者,也能帮助有经验的开发者加深对Lambda表达式的理解。
      |
      2月前
      |
      Java
      探索Java中的Lambda表达式
      【10月更文挑战第37天】本文将带你深入理解Java的Lambda表达式,从基础语法到高级特性,通过实例讲解其在函数式编程中的应用。我们还将探讨Lambda表达式如何简化代码、提高开发效率,并讨论其在实际项目中的应用。
      |
      2月前
      |
      Java API
      Java中的Lambda表达式与函数式编程####
      【10月更文挑战第29天】 本文将深入探讨Java中Lambda表达式的实现及其在函数式编程中的应用。通过对比传统方法,我们将揭示Lambda如何简化代码、提高可读性和维护性。文章还将展示一些实际案例,帮助读者更好地理解和应用Lambda表达式。 ####
      |
      2月前
      |
      JSON 自然语言处理 Java
      这款轻量级 Java 表达式引擎,真不错!
      AviatorScript 是一个高性能、轻量级的脚本语言,基于 JVM(包括 Android 平台)。它支持数字、字符串、正则表达式、布尔值等基本类型,以及所有 Java 运算符。主要特性包括函数式编程、大整数和高精度运算、完整的脚本语法、丰富的内置函数和自定义函数支持。适用于规则判断、公式计算、动态脚本控制等场景。
      |
      1月前
      |
      安全 Java API
      Java中的Lambda表达式:简化代码的现代魔法
      在Java 8的发布中,Lambda表达式的引入无疑是一场编程范式的革命。它不仅让代码变得更加简洁,还使得函数式编程在Java中成为可能。本文将深入探讨Lambda表达式如何改变我们编写和维护Java代码的方式,以及它是如何提升我们编码效率的。
      |
      2月前
      |
      安全 Java API
      Java中的Lambda表达式与Stream API的高效结合####
      探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
      28 0