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

😸个人主页👉神兽汤姆猫

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

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

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

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

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

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

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

算数运算符

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

字符+操作

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

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

在上例中,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
}

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

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);
    }
}

自增自减运算符

符号作用备注
++自增变量值自身加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
}
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
}

赋值运算符

符号作用示例备注
=赋值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
}

逻辑运算符

在生活中如果我们需要表达某个数据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为女,男女可以,男男或者女女就不可以。
}

短路逻辑运算符

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

&和&&的区别?:

&没有短路效果,无论符号左边是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);//第二种输出结果:
}

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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神兽汤姆猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值