【无标题】

JavaSE Day2

1、算术运算符

什么是算术运算符,什么是表达式

运算符就是对常量和变量操作的符号;表达式的意思是用运算符吧常量或变量联系起来的式子

包括

一元运算符

二元运算符

算术赋值运算符

一元运算符
运算符名称说明例子
-取反符号取反运算b=-a
++自加一先加一在取值,或先取值在加一++a或a++
自减一先减一在取值,或先取值在减一–a或a–

举例说明

public class Test {
    public static void main(String[] args) {
        int a = 5;
        System.out.println(-a);		//1.对a取反

        int b = a++;
        System.out.println(b);		//2.先赋值给b,a在自己加1

        b = ++a;
        System.out.println(b);	//3.a先自己加一在赋值

    }
}

输出结果如下图所示:

在这里插入图片描述

1.对a取反等于-5

2.先把a等于5赋值给b,所以b为5,然后a自加1变为6,所以输出b等于5

3.经过2步骤,a等于6,在线自加1,等于7,在赋值给b,所以b=7,输出-7

二元运算符
运算符名称说明例子
+求a加b的和,还可以用于字符串拼接a+b
-求a减b的差a-b
*求a乘b的乘积a*b
/求a除以b商a/b
%取余求a对b取余a%b

优先级上*、/、%高于+、-

单引号的+是算术运算符用于相加,双引号的加是连接作用,不是相加作用

举例子

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        
        System.out.println(a+b);	//加
        System.out.println(a-b);	//减
		System.out.println(a*b);	//乘
        System.out.println(a/b);	//除
        System.out.println(a%b);	//取余
    }
}

结果如下:
在这里插入图片描述


思考:字符的”+“操作

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

当char与a进行运算的时候,会查找Ascll表中字符’a’对应的数值,然后和int进行+运算

ASCLL表是什么东西?

ASCII码是"美国信息交换标准代码"的简称.它包括0~9十个数字,大小写的英文字母及专用符号等95种可打印字符,还有33种控制字符.

案例:数值拆分

分别求三位数个、十、百分位

import java.util.Scanner;	//导入java的内部类

public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);    //创建对象请从右边开始写new Scanner


        //思考,为了程序的健壮性,首先用户输入的不是数字是字符怎么办(解决办法正则表达式),其次输入的不是三位数怎么办(解决办法if判断)
        //1.从键盘获取三维数
        int number = in.nextInt();

        //2.将个位、十位、百位分别提取出来
        int gewei = number%10;
        int shiwei = number/10%10;
        int baiwei = number/100;

        System.out.println("个位是:"+gewei);
        System.out.println("十位是:"+shiwei);
        System.out.println("百位是:"+baiwei);
    }
}


在这里插入图片描述


赋值运算符
运算符名称说明例子
=等于a=1
+=加等于a+=1
-=减等于a-=1
*=乘等于a*=1
/=除后等于a/=1
%=取余后赋值a%=1

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

public class Test {
    public static void main(String[] args) {
        char ch1 = 'a';
		int num = 5;
		
		System.out.println(ch1 += num); //ch1 = ch1 + num,ch1+num小转大,变为int型,然后被强制转换为char型		
    }
}
关系运算符
符号说明
==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,判断是否小于等于b,成立为true,不成立为false
逻辑运算符

连接关系表达式的运算符,也可以直接练习布尔类型的常量或变量

操作符描述例子
&逻辑与a&b,a和b都是true就是true,否则为false
|逻辑或a|b,a和b都是false,结果为false,否则为true
^逻辑异或a^b,a和b结果不同,不同为false
!逻辑非!a,结果正好和a的结果的相反
public class Test {
    public static void main(String[] args) {
        char ch = 'a';							
        int number = 96;
        System.out.println(ch & number);
        
        //将'a'化为2进制,0110 0001
        //96的二进制为,   0110 0000
        //按位&得,		  0110 0000----->是进制为96
    }
}

短路逻辑运算符 && ||

名如其意,其短路作用

逻辑与,左边为真,右边运行;左边为真,右边不执行

逻辑或,左边为真,右边不执行;逻辑或,左边为假,右边为真

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int k = 30;


        System.out.println(true && a++ >100);   //逻辑与,左边为真,右边运行
        System.out.println(a);                  //11
        System.out.println(false && a++ >100);  //逻辑与,左边为真,右边不执行
        System.out.println(a);                  //11

        System.out.println(true || b++ > 100);  //逻辑或,左边为真,右边不执行
        System.out.println(b);                  //20
        System.out.println(false || b++ >100);  //逻辑或,左边为假,右边为真
        System.out.println(b);                  //21
    }
}
位运算符
操作符描述例子
如果相对应位**都是1**,则结果为1,否则为0(A&B),得到12,即0000 1100
|如果相对应位==都是 0==,则结果为 0,否则为 1(A | B)得到61,即 0011 1101
^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011
<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000
>>按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111
三元运算符

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

a>b?a:b

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a > b? a:b);
    }
}

思考

java内存模型、变量存储

public class Test {
    public static void main(String[] args) {
        int a = 1;
        a = a++;
        System.out.println(a);  //a = 1
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值