java基础之运算符

目录

算数运算符

字符

字符的加法操作

字符串的"+"操作

赋值运算

自增运算符

关系运算符

逻辑运算符

短路逻辑运算符

位运算符

三元运算符


算数运算符

运算符与表达式

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

表达式:用运算符把常量或变量连接起来符号java语法的式子就叫表达式,不同运算符连接的表达式体现的是不同类型的表达式

符号作用
+
-
*
/
%取余
public class OperatorDemo01{
        public static void main(String[] args){
                int a=10;
                int b=20;

                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);
                //除法得到的是商,取余得到的是余数
                //整数相除只能得到整数,要想得到小数,就必须有浮点数的参与

        }

}

字符

字符的加法操作

拿字符在计算机底层的数值来进行计算的

字符数值
A65A-Z连续
a97a-z连续
0480-9连续

算数表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动进行提升。

提升规则:

byte类型,short类型和char类型将被提升到int

整个表达式的类型自动提升到表达式中最高等级操作数同样的类型

等级顺序:byte,short,char----->int------>long----->fliat------>double

public class OperatorDemo02{
        public static void main(String[] args){
                int i=10;
                char c='A';//A是65
                c='a';
                c='o';
                System.out.println(i+c);

                //char ch=i+c;
                //char类型会自动提升为int类型
                int j=i+c;
                System.out.println(j);
                //int k=c+0.12; //提升double
                double k=c+0.12;

        }
}

字符串的"+"操作

public class OperatorDemo02{
        public static void main(String[] args){
                System.out.println("我是"+"谁");
                System.out.println("我"+6+6);
                System.out.println(99+1+"我");

        }
}

当"+" 操作中出现字符串,这个"+"是字符串连接符,而不是算数运算符

"我"+666

在"+"操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行"+"操作时,从左到右逐个执行

99+1+"我"


赋值运算

符号作用说明
=赋值a=10,将10赋值给a
+=加后赋值a+=b,将a+b的值赋值给a
-=减后赋值a-=b,将a-b的值赋值给a
*=乘后赋值a*=b,将a*b的值赋值给a
/=除后赋值a/=b,将a/b的商赋值给a
%=取余后赋值a%=b,将a/b的余数赋值给a

案例

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

                //将10赋值给int类型的变量i;
                int i=10;
                System.out.println(i);
                //+=把左边和右边的数据做加法操作,结果赋值给左边
                //i+=20;

                i=i+20;

                System.out.println(i);

                //注意 扩展的赋值运算符底层隐含了强制类型转换
                short s=10;
                s+=20;
                //s=s+20;//类型不兼容
                System.out.println(s);

        }
}

注意:扩展的赋值运算符底层隐含了强制类型转换


自增运算符

符号作用说明
++自增变量的值加1
--自减变量的值减1
public class OperatorDemo{
        public static void main(String[] args){
                int i =10;
                System.out.println("i:"+i);

                //单独使用
                //i++;
                //++i;
                //System.out.println("i++:"+i);


                //参与操作使用
                //int j=i++;
                int j =++i;
                System.out.println("i:"+i);
                System.out.println("j:"+j);


        }
}

注意事项:

++和--可以放在变量的后面,也可以放在变量的前面

单独使用时,无论放在变量的前面或后面,结果都一样。

参与操作时,如果放在变量的后面,先拿变量来操作,然后在++或--

参与操作时,如果放在变量的前面,先拿++或--来操作,然后在对变量操作。

常见用法:单独使用


关系运算符

符号说明
==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 class OperatorDemo{

        public static void main(String[] args){
                int i=10;
                int j=20;
                int k=10;

                //==
                System.out.println(i==k);
                System.out.println(i==j);

                //=!
                System.out.println(i=!k);
                System.out.println(i=!j);

                //



        }
}

注意事项:

关系运算符的结果都是boolean类型,要么是true,要么是false


逻辑运算符

逻辑运算符概述
在数学中,一个数据x,大于3,小于6,可以写成3<x<6。
在java中,需要将上面的式子拆解,再进行合并表达
先拆解 x>3 和 x<6
合并后 x>3&&x<6
&&是逻辑运算符,逻辑运算符是用来连接关系表达式的运算符,逻辑运算符也可以直接连接布尔类型的常量或变量
逻辑运算符

符号作用说明
&逻辑与a&b,a和b都是true,结果true,否则为false
|逻辑或a|b,a和b都为false,结果为false,否则为true
^逻辑异或a^b,a和b不同为true,相同为false
!逻辑非!a ,结果和a的结果相反

public class OperatorDemo01{
        public static void main(String[] agrs){
                int i=10;
                int j=20;
                int k=30;

                //& 有false则false
                System.out.println((i>j)&(i>k));  //false & false
                System.out.println((i<j)&(i>k));  //true & false
                System.out.println((i>j)&(i<k));  //false & true
                System.out.println((i<j)&(i<k));  //true & true

                //| 有true则true
                System.out.println((i>j)|(i>k));  //false | false
                System.out.println((i<j)|(i>k));  //true | false
                System.out.println((i>j)|(i<k));  //false | true
                System.out.println((i<j)|(i<k));  //true | true

                // ^相同为false,不同为true
                System.out.println((i>j)^(i>k));  //false ^ false
                System.out.println((i<j)^(i>k));  //true ^ false
                System.out.println((i>j)^(i<k));  //false ^ true
                System.out.println((i<j)^(i<k));  //true ^ true

                // !
                System.out.println((i>j));  //false
                System.out.println(!(i>j))  //!false
                System.out.println(!!(i>j)); //!!false
                System.out.println(!!!(i>j)); //!!!false
                

        }
}



短路逻辑运算符

符号作用说明
&&短路与作用和&相同,但是有短路效果
||短路或作用和|相同,但是有短语效果

注意事项:
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行,如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行,如果左边为真,右边不执行。


位运算符

符合作用
~按位取反
&按位与
|按位或
^按位异或
<<按位左移
>>按位右移
>>>按位无符号右移

三元运算符

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

例如:a>b ? a : b;

计算规则

首先计算关系表达式的值

如果值为true,表达式1的值就是运算结果

如果值为false,表达式2的值就是运算结果

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

版权声明:本文为qq_53558470原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。