2、运算符和表达式

1、算术运算符

+  -  ×  ÷   跟小学数学中一模一样

//  %:取模、取余。
// 他做的也是除法运算,只不过获取的是余数而已。

System.out.println(10 % 2);
System.out.println(10 % 3);

// 应用场景:
// 可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);

//1 3 5 7...奇数  0 2 4 6...偶数 又叫:双数 倍数

//任何一个数 % 2  不是 0 就是 1  
                                             数值拆分
公式:   获取任意一个数上每一位数
个位:数字 % 10
十位:数字 / 10 % 10
百位:数字 / 100 % 10
千位:数字 / 1000 % 10

                                         。。。以此类推。。。

2、隐式转换

取值范围小的和取值范围大的进行运算,小的会先提升为大的,再进行运算

byte b = 100;
int i = b;    //可以成功赋值

int i = 10;
long n = 20L;
long  result = i + n;

取值范围大小关系:double > float > long > int > short > byte

byte、short、char  三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

3、强制转换

书写格式: 目标数据类型 变量名 = (目标数据类型)被强转的数据;

public class Demo {
    public static void main(String[] args) {
        double a = 12.3;
        int b = (int) a;
        System.out.println(b);  //12

    }
}
     强制转换有可能会导致数据发生错误。(数据的精度丢失)

要转成什么类型的,那么就在小括号中写什么类型就可以了。

4、字符串的 + 操作

当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。
当连续进行+操作时,从左到右逐个执行的。

public class Dem {
    public static void main(String[] args) {

       //两个字符串相加产生一个新的字符串
       String name = "默默";
       System.out.println("我的名字是:" + name); //我的名字是:默默

       //从左到右逐个执行
       System.out.println(1 + 2 + "里" + 2 + 1); //3里21
    }
}

5、字符的 + 操作

当+操作中出现了字符,会拿着字符到ASCII码表中去查对应的数字,然后再进行计算

// ASCII码表中:
​	'a'   -----    97
​	'A'   -----    65
char c = 'a';
int result = c + 0;
System.out.println(result); //97

6、自增自减运算符

++  自增运算符就是把变量里面的值 +1
--  自减运算符就是把变量里面的值 -1

        放在变量的前面,我们叫做:先++                          放在变量的后面,我们叫做:后++

int a = 10;
a++;    //就是让变量a里面的值 + 1
System.out.println(a);//11
++a;  //就是让变量a里面的值 + 1
System.out.println(a);//12


int b = 10;
b--;    //就是让变量a里面的值 - 1
System.out.println(b);//9
--a;  //就是让变量a里面的值 - 1
System.out.println(b);//8

不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

7、赋值运算符

最为常用的:    =              运算过程:就是把等号右边的结果赋值给左边的变量

public class OperatorDemo6 {
    public static void main(String[] args) {
        //1.最为简单的赋值运算符用法
        int a = 10;//就是把10赋值给变量a
        System.out.println(a);

        //2.如果等号右边需要进行计算。
        int b = 20;
        int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(c);

        //3.特殊的用法
        a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(a);//20
    }
}

运算规则:     +=、-=、*=、/=、%=

​    就是把左边跟右边进行运算,把最终的结果赋值给左边,对右边没有任何影响。

public class OperatorDemo7 {
    public static void main(String[] args) {
        //赋值运算符
        int a = 10;
        int b = 20;
        a += b;//把左边和右边相加,再把最终的结果赋值给左边,对右边没有任何影响
        // 相当于 a = a + b;
        System.out.println(a);  //30
        System.out.println(b);  //20
    }
}

8、关系运算符

又叫比较运算符,其实就是拿着左边跟右边进行了判断而已
符号解释
==就是判断左边跟右边是否相等,    如果成立就是 true, 如果不成立就是 false
!=就是判断左边跟右边是否不相等,如果成立就是 true, 如果不成立就是 false 
>就是判断左边是否大于右边,       如果成立就是 true, 如果不成立就是 false
>=就是判断左边是否大于等于右边,如果成立就是 true, 如果不成立就是 false
<就是判断左边是否小于右边,       如果成立就是 true, 如果不成立就是 false
<= 就是判断左边是否小于等于右边,如果成立就是 true, 如果不成立就是 false

关系运算符最终的结果一定是布尔类型的。要么是true,要么是false

9、逻辑运算符

|逻辑或(或者)两边都为假,结果才是假,只要有一个为真,那么结果就是真。两边满足一个
||运算结果跟 | 是一模一样的,只不过具有短路效果。
&逻辑与(并且)两边都为真,结果才是真,只要有一个为假,那么结果就是假。两边都要满足
&&运算结果跟 & 是一模一样的,只不过具有短路效果。
^异或如果两边相同,结果为假,如果两边不同,结果为真
!取反假取反就是真,真取反就是假
// &  两边都是真,结果才是真。
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(true | true);  //true
System.out.println(false | false);  //false
System.out.println(true | false);  //true
System.out.println(false | true);  //true

//^   左右不相同,结果才是true,左右相同结果就是false
System.out.println(true ^ true);  //false
System.out.println(false ^ false);  //false
System.out.println(true ^ false);  //true
System.out.println(false ^ true);  //true

//!   
System.out.println(!false);  //true
System.out.println(!true);  //false
System.out.println(!!false);//注意点:取反最多只用一个。

10、三元运算符

又叫做:三元表达式 或者 问号冒号 表达式。

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

如果关系表达式的值为真,那么执行表达式1     如果关系表达式的值为假,那么执行表达式2。

public class OperatorDemo12 {
    public static void main(String[] args) {
        //需求:求两个数的较大值
        int a = 10;
        int b = 20;

        //格式:关系表达式 ? 表达式1 : 表达式2 ;
        //注意点:
        //三元运算符的最终结果一定要被使用。
        //要么赋值给一个变量,要么直接输出。
       int max =  a > b ? a : b ;

        //赋值给一个变量打印变量。
        System.out.println(max); //20

         //或者直接打印
        System.out.println(a > b ? a : b); //20
    }
}

三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来。

11、运算符的优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值