运算符

98 阅读4分钟

运算符

算术运算符: + - * / %

System.out.println(5 + 2);

System.out.println(17 - 9);

System.out.println(5 * 8);

System.out.println(9 / 3);

+: 当+号左右两端出现一个字符串的时候,那么它执行的 是字符串拼接动作。

int result = 50;

System.out.println("最终结果是:" + result);

System.out.println("最终结果是:" + (3 + 7) );

% : 取模,取余 该符号是对左右两个操作数做除法,只不过最终结果不是商而是余数

特殊:

      1、余数正负号,只跟第一个被除数有关;       

       2、%符号的运算只在整数运算下才有意义;

System.out.println( 8 % 5);

System.out.println(-8 % 5);

System.out.println(8 % -5);

System.out.println(-8 % -5);

System.out.println(5.3 % 2.6);

最重要的:所有的算术运算符号,如果左右两端的运算数数据类型 一致,那么结果就是该类型的结果。 如果不一致,那么结果就是大的那个数据类型的结果

System.out.println( 1 / 2 );

System.out.println( 1 / 2.0);

赋值运算符:=

把赋值运算符右边的表达式,赋给左边的变量

1、左边只有一个变量

2、要注意左右两边的数据类型:自动类型转换 和 强制类型转换

int a = 0, b = 0;

a = a + 13;

变形的赋值运算符(一): += -= *= /= %=

b += 5;// b = b + 5;

变量 = 变量 + 值; 变量 += 值; 这两句的最终效果是一样的,但是如果出现类型不匹配的情况, 语句一只能我们自己强制类型转换,语句二可以由该表达式帮我们进行类型转换

b = (int)(b + 3.14);

b += 3.14;

System.out.println(b);

变形的赋值运算符(二): ++ -- 又被称之为

自增长","自减小"

a = 100;

a++;// a += 1; a = a + 1;

++a;

System.out.println(a);

a--;// a -= 1; a = a - 1;

--a;

System.out.println(a);

前加 ++a 前减 --a 后加 a++ 后减 a-- 单独使用a++ 和 ++a 是没有区别的(--也是同理)

int num = 10;

System.out.println( ++num * 5 );

比较运算符: > < >= <= != ==

比较运算符最终的结果只能是boolean类型true或false

System.out.println(5 > num);

三目运算符: 表达式1 ? 表达式2 : 表达式3

1、表达式1必须是一个布尔表达式; 2、当表达式1为true的时候,用表达式2的结果作为整个三目运算符的结果; 当表达式1为false的时候,用表达式3的结果作为整个三目运算符的结果

\

System.out.println( num < 5 ? "男" : "女" );

逻辑运算符

逻辑运算符之"和",又被称之为"与","且"

连接两个boolean表达式,当它们同为true,那么整体返回true;

只要有一个为false,整体返回假;

符号: && - 逻辑与,是专用的逻辑符号

& - 位与,本质是位运算符,只是当它左右两端是boolean类型时, 表现出和"&&"同样的效果。

区别: 逻辑与&& 又被称之为"短路运算符",当它判断出第一个表达式为false的时候, 它不会去执行第2个表达式; 位与 不短路

int a = 10;

// System.out.println(a < 5 & a++ > 10);

// System.out.println(a);

逻辑运算符之"或"

连接两个boolean表达式,当两个表达式有一个为true的时候,整体就为true; 符号 || - 逻辑或,专用的或符号

| - 位或,本质也是位运算符,只是当它左右两端是boolean类型时, 表现出和"||"同样的效果

区别: 逻辑或 "||" 又被称之为"短路运算符",当它判断出第一个表达式为true的时候, 它不会去执行第2个表达式; 位或"|" 不短路

System.out.println(true | true);

逻辑运算符之"非"

用来对一个boolean表达式的结果取反。

如果这个表达式是true,取反后就是false; 反之亦然。

符号 !

System.out.println(!true);

异或:效果是当两个boolean表达式不同的时候返回true,相同的时候返回false;

符号: ^

System.out.println(true ^ false);

逻辑运算符

逻辑运算符之"和",又被称之为"与","且"

连接两个boolean表达式,当它们同为true,那么整体返回true;

只要有一个为false,整体返回假;

符号: && - 逻辑与,是专用的逻辑符号

& - 位与,本质是位运算符,只是当它左右两端是boolean类型时, 表现出和"&&"同样的效果。

区别: 逻辑与&& 又被称之为"短路运算符",当它判断出第一个表达式为false的时候, 它不会去执行第2个表达式; 位与 不短路

int a = 10;

// System.out.println(a < 5 & a++ > 10);

// System.out.println(a);

逻辑运算符之"或"

连接两个boolean表达式,当两个表达式有一个为true的时候,整体就为true; 符号 || - 逻辑或,专用的或符号

| - 位或,本质也是位运算符,只是当它左右两端是boolean类型时, 表现出和"||"同样的效果

区别: 逻辑或 "||" 又被称之为"短路运算符",当它判断出第一个表达式为true的时候, 它不会去执行第2个表达式; 位或"|" 不短路

System.out.println(true | true);

逻辑运算符之"非"

用来对一个boolean表达式的结果取反。

如果这个表达式是true,取反后就是false; 反之亦然。

符号 !

System.out.println(!true);

异或:效果是当两个boolean表达式不同的时候返回true,相同的时候返回false;

符号: ^

System.out.println(true ^ false);