Java 运算符

1. 概念

运算符:进行特定操作的符号。
例如:+
表达式:用运算符连起来的式子。
例如:1+2、a+b

2.算数运算符

包括:
①加法运算、字符串连接运算:+;
1.整数相加:

System.out.println(20+30);//输出50

2.对char数据类型,在计算前会将char数据提升为int,然后计算
3.对字符串String,加号代表字符串连接:

String str1=”Hello”;
System.out.println(str1+”World”); //输出HelloWorld
System.out.println(str1+20); //输出Hello20
System.out.println(str1+20+30); //输出Hello2030

②减法运算:-;

int a=20;
int b=30;
System.out.println(a-b);//输出-10

③乘法运算:*;

int a=20;
System.out.println(a*10);//输出200

④除法运算:/;

int a=10;
int b=3;
System.out.println(a/b);//输出3

⑤取模运算,两个数字相除取余数:%;

int a=10;
int b=3;
System.out.println(a%b);//输出1

⑥自增运算:++;(变量自己增长1)
如果是前++,先加后用:变量立刻+1,然后拿着结果进行使用;
如果是后++,先用后加:变量先拿来使用,然后变量+1。

int a=20;
System.out.println(a);//输出20
++a;
System.out.println(a);//输出21
a++;
System.out.println(a);//输出22
b=10;
System.out.println(b);//输出10
System.out.println(++b);//输出11
c=10;
System.out.println(c++);//输出10
System.out.println(c);//输出11

⑦自减运算:--。(变量自己减少1)
如果是前--,先减后用:变量立刻-1,然后拿着结果进行使用;
如果是后--,先减后加:变量先拿来使用,然后变量-1。

int a=20;
System.out.println(a);//输出20
--a;
System.out.println(a);//输出19
a--;
System.out.println(a);//输出18
b=10;
System.out.println(b);//输出10
System.out.println(--b);//输出9
c=10;
System.out.println(c--);//输出10
System.out.println(c);//输出9

Java中,整数使用以上运算符,无论如何计算,得到的都是整数。

public static void main(String[] args) {
    int i=1234;
    System.out.println(i/1000*1000);//输出1000
}

注意:运算中有不同数据类型的数据,结果为数据类型范围大的哪个数据类型。

int a=10;
System.out.println(a+2.5);//输出12.5

3.赋值运算符

赋值运算符:将符号右边的值,赋给左边的变量。
赋值运算符分为基本复制运算符(=)和复合赋值运算符(+=、-=、*=、/=、%=)
包括:
①等于号:=;
②加等于:+=;(a += 3相当于a=a+3)

public static void main(String[] args) {
    int i=5;
    i+=5;
    System.out.println(i);//输出10
}

③减等于:-=;(b -= 4相当于b=b-4)
④乘等于:*=;(c = 5相当于c=c5)
⑤除等于:/=;(d /= 6相当于d=d/6)
⑥取模等:%=。(e%= 7相当于e=e%7)

public static void main(String[] args) {
    int i=23;
    i%=5;
    System.out.println(i);//输出3
}

注意:
①只有变量才能使用赋值运算符,常量不能使用;
②复合赋值运算符隐含了一个强制类型转换。

byte a=5;
a+=5;//实际上为:a = (byte)  a + 5;
System.out.println(a);

4.比较运算符

比较运算符:两个数据之间进行比较的运算符,结果是true或false。
包括:
①比较符号两边数据是否相等(相等结果为true):==;
②比较符号左边数据是否小于右边数据(如果小于,结果为true):<;
③比较符号左边数据是否大于右边数据(如果大于,结果为true):>;
④比较符号左边数据是否小于或等于右边数据(如果小于或等于,结果为true):<=;
⑤比较符号左边数据是否大于或等于右边数据(如果大于或等于,结果为true):>=;
⑥比较符号两边数据是否不相等(如果不相等,结果为true):!=。

public static void main(String[] args) {
    System.out.println(1==1);//输出true
    System.out.println(1<2);//输出true
    System.out.println(3>2);//输出true
    System.out.println(1<=2);//输出true
    System.out.println(3>=2);//输出true
    System.out.println(3!=2);//输出true
}

注意:
①比较运算符的结果一定是boolean值,成立是true,不成立是false;
②进行多次判断不能连写。

System.out.println(1<2<3);//编译报错

5.逻辑运算符

包括:
①与(并且,连接两个boolean值,两个都为true结果才为true,否则为false):&&

System.out.println(false && true);//输出false

②或(或者,连接两个boolean值,两个都为fasle结果才为false,否则为true):||

System.out.println(false || true);//输出true

③非(取反,用于boolean前,原来是true,结果为false;原来是false,结果为true):!

System.out.println(!true);//输出false

与“&&”、或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。

int a=10;
System.out.println(3>4 && ++a<100);输出false
System.out.println(a);//输出10

注意:
①逻辑运算符只能用于boolean值;
②与、或需要左右各有一个boolean值,但是取反只要有唯一的一个boolean值;
③与、或两种运算符,如果有多个条件,可以连续写。
条件A && 条件B && 条件C

6.三元运算符

一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--;
二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、赋值=;
三元运算符:需要栅格数据才可以进行操作的运算符。
三元运算符格式:数据类型 变量名称 = 条件判断 ? 表达式A:表达式B;
流程:
①判断条件是否成立;
②如果成立为true,将表达式A的值赋值给左侧的变量;如果不成立为false,将表达式B的值赋值给左侧的变量。

public static void main(String[] args) {
    int a = 10;
    int b = 20;
int max = a > b ? a : b;
System.out.println("最大值:"+max);
}

注意:
①必须同时保证表达式A和表达式B都符合左侧数据类型的要求;
②三元运算符的结果必须被使用。

你可能感兴趣的:(Java 运算符)