【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

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

      相关文章
      |
      4天前
      |
      Java
      【Java基础】输入输出流(IO流)
      Java基础、输入输出流、IO流、流的概念、输入输出流的类层次结构图、使用 InputStream 和 OutputStream流类、使用 Reader 和 Writer 流类
      44 1
      |
      10天前
      |
      Java C++
      Java基础之运算符
      Java运算符包括算术、赋值、关系、逻辑、条件和类型等,如加减乘除、自增自减(前缀++n/后缀n++)、赋值(+/-/*/=等)、比较(==/!=/&gt;/&lt;等)、逻辑(&&/||/!)和三元运算符。自增前后缀的区别在于赋值顺序。初面常问:=与==的区别(赋值vs比较),==与equals()(引用vs内容比较),&&与&(短路逻辑与vs按位与)。
      9 2
      |
      3天前
      |
      Java 程序员 API
      [笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
      [笔记] 疯狂JAVA讲义(第3版)第3章 数据类型和运算符
      |
      3天前
      |
      Java
      Java 8 新特性:深入理解 Lambda 表达式的强大与应用
      Java 8 新特性:深入理解 Lambda 表达式的强大与应用
      8 2
      |
      3天前
      |
      Java Perl
      java 正则表达式
      java 正则表达式
      11 2
      |
      3天前
      |
      Java
      哇塞!Java 基本语法的运算符,你真的懂了吗?算术运算符篇
      【6月更文挑战第14天】Java中的算术运算符是编程基础,包括加法`+`(用于数字相加和字符串拼接)、减法`-`、乘法`*`、除法`/`(需防除数为零)和取余`%`。它们在计算位移、周期性问题等场景中广泛应用。理解并熟练掌握这些运算符,能提升编程效率和代码质量。现在就开始实践,发掘它们的更多可能性吧!
      |
      3天前
      |
      算法 Java
      炸裂!Java 基本语法的运算符世界,等你来探索!算术运算符特辑
      【6月更文挑战第14天】Java中的算术运算符是基础关键,如加法&quot;+&quot;用于数字相加和字符串拼接,减法&quot;-&quot;求差,乘法&quot;*&quot;相乘,除法&quot;/&quot;注意整数除法会舍去小数,浮点数则保留,取模&quot;%&quot;)返回除法余数。熟练掌握这些运算符能提升编程效率,构建复杂逻辑。继续探索Java运算符世界,创造更多精彩程序!
      |
      4天前
      |
      Java 编译器
      Java中各种运算符的使用
      `long`类型内存8个字节, `int`类型内存4个字节。 `long`取值范围大于`int` ;想要赋值成功,只有通过**强制类型转换**,将 `long` 类型强制转换成`int`类型才能赋值。 - **强制转换**:将 **取值范围大的类型 强制转换成 取值范围小的类型**;比较而言,**自动转换是Java自动执行的,而强制转换需要我们自己手动执行。**
      |
      5天前
      |
      存储 缓存 Java
      Java基础17-读懂Java IO流和常见面试题(二)
      Java基础17-读懂Java IO流和常见面试题(二)
      15 0
      |
      5天前
      |
      存储 Java Unix
      Java基础17-读懂Java IO流和常见面试题(一)
      Java基础16-读懂Java IO流和常见面试题(一)
      17 0