Java教程

运算符

本文主要是介绍运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java 语言支持如下运算符:

  • 算术运算符 +,-,*,/,%,++,--

  • 赋值运算符 =

  • 关系运算符 >,<,>=,<=,==,!= instanceof

  • 逻辑运算符 &&,||,!

  • 位运算符 &,|,^,~ , >>,<<,>>> (了解!!!)

  • 条件运算符 ?:

  • 扩展赋值运算符 +=,-=,*=,/=

1.二元运算

两个操作数

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    int c = 25;
    int d = 25;
    System.out.println("a + b = " + (a + b) );
    System.out.println("a - b = " + (a - b) );
    System.out.println("a * b = " + (a * b) );
    System.out.println("b / a = " + (b / a) );
}

整数运算

如果两个或多个操作数中有一个为Long, 则结果也是Long

没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

public static void main(String[] args) {
    long a = 1231321311231231L;
    int b = 1213;
    short c = 10;
    byte d = 8;
​
    System.out.println(a + b + c + d); //Long类型
    System.out.println(b + c + d);//Int类型
    System.out.println(c + d);//Int类型
}

浮点运算

如果两个或多个操作数有一个为double, 则结果为double

只有表达表操作数都是float, 则结果才为float

public static void main(String[] args) {
    float a = 3.14565F;
    double b = 3.194546464;
    float c = 1.3123123F;
    System.out.println(a+b); //double类型
    System.out.println(b+c); //double类型
    System.out.println(a+c); //float类型
}

关系运算符

运算符描述例子
== 检查两个操作数的值是否相等,如果相等则为真 (4 == 5)为假
!= 检查两个操作数的值是否相等,如果不相等则为真 (5 != 5)为假
> 检查左操作数的值是否大于右操作数的值,如果大于则为真 (5 > 4)为真
< 检查左操作数的值是否小于右操作数的值,如果小于则为真 (5 < 4)为假
>= 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于则为真 (5 >= 5)为真
<= 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于则为真 (5 =< 4)为假

2.取模运算

在计算机中,除法分两种,对整数做除法运算以及对浮点数做除法运算;除法运算符号也分两种,/ 是对两被除数取整,% 是对被除数取余

5%3 余 2

5/3 得1

  • 浮点数做除法运算

    double num_dou1 = 7.0;
    double num_dou2 = 2;
    System.out.println("dou = " + num_dou1 / num_dou2);//dou = 3.5
    System.out.println("dou = " + num_dou1 % num_dou2);//dou = 1.0
  • 整数做除法运算

    int num_int1 = 5;
    int num_int2 = 2;
    System.out.println("int1 = " + num_int1 / num_int2);//int1 = 2
    System.out.println("int2 = " + num_int1 % num_int2);//int1 = 1
  • 浮点数与整数做除法运算

    int num_int2 = 2;
    double num_dou1 = 7.0;
    System.out.println("int&dou1 = " + num_dou1 / num_int2);//int&dou1 = 3.5
    System.out.println("int&dou2 = " + num_dou1 % num_int2);//int&dou2 = 1.0

由上可以得出浮点数与浮点数或整数做取整反回的是带小数的,而整数对整数取整反回的还是整数,如果不想丢失精度,那在做取整时,把整数转浮点数再求值

负数%负数=负数;

负数%正数=负数;

正数%负数=正数;

3.一元运算符

自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算, 而自增自减运算符是一个操作数,分为前缀和后缀两种。

int a = 5;
int b = a++;//后置的++是先给b赋值,然后再自增
System.out.println(b);//5,因为b是在a自增前赋值的
int c = ++b;//前置的++是先自增,然后再给c赋值
System.out.println(a);//6,因为在赋值给b后自增了1
System.out.println(b);//6,因为在赋值给c前自增了1
System.out.println(c);//6,因为b是在a自增前赋值的,而c是在b自增后赋值的

4.逻辑运算符

逻辑与:&&和&

逻辑或:||和|

逻辑非:!

运算符描述例子
&& 当且仅当两个操作数都为真,条件才为真 (true && false) 为假
|| 当且仅当两个操作数任一为真,条件为真 (true && false) 为真
! 如果条作为true则条件为假,反之为真 (!true) 为假

例子的true和false可以为表达式,但表达式的结果必须是boolean布尔值。

逻辑与逻辑或 采用短路的方式。逻辑与只要有一个为false, 则直接返回false;逻辑或只要有一个为true, 则直接返回true

从左到右计算,如果确定值则不会再计算下去。在两个操作数都为 true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断 第二个操作了。

int a = 5;
boolean flag = (a < 4) && (a++ < 10);
System.out.println(flag);//false
System.out.println(a);//5
//首先判断 a<4 的结果为 false,则 b 的结果必定是 false, 所以不再执行第二个操作 a++<10 的判断
flag = (a == 5) || (--a > 4);
System.out.println(flag);//true
System.out.println(a);//5
//首先判断 a == 5 的结果为 true,则不管 b 的结果是啥,不再执行第二个操作 --a < 4 的判断

5.位运算符


 

这篇关于运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!