//运算符
public class day2 {
public static void main(String[] args) {
int a = 3;
int b = 2;
// 加号运算符
System.out.println("a+b="+(a+b));// 代码计算括号的优先级高于字符串 结果:a+b=3
System.out.println(a+"+"+b+"="+(a+b));// 字符串拼接 结果:1+2=3
// 除法运算符
System.out.println(a/b);
// 取余运算符
System.out.println(a%b);
int c = 4;
/*
注意:赋值运算时不一样
未参与运算
c++或++c 等于c = c+1
int c = 4;
System.out.println(c++);
参与运算
++在后,先自身加1,然后在参与运算
int c = 1;
int d = c++;
System.out.println(d);// 结果2
++在前,先参与运算,然后自身加1
int c = 1;
int d = ++c;
System.out.println(d);// 结果1
*/
System.out.println(c++);
int e = 4;
/*
注意:赋值运算时不一样
未参与运算
e--或--e 等于e = e+1
int e = 4;
System.out.println(e--);
参与运算
--在后,先自身减1,然后在参与运算
int e = 1;
int d = e--;
System.out.println(d);// 结果2
--在前,先参与运算,然后自身减1
int e = 1;
int d = --e;
*/
System.out.println(c--);
int i = 10;
//int j = i++ + ++i + i-- + --i
int v = i++; // v=10 i=11
int v1 = ++i; // v1=12 i=12
int v2 = i--; // v2=12 i=11
int v3 = --i; // v3=10 i=10
int v4 = v+v1+v2+v3;
System.out.println(v4);
// 赋值运算符
/*
=
+=
-=
*=
/=
%=
*/
int n = 1;
n +=2;// n = n + 2
System.out.println(n);
//关系运算符
/* 注意:关系运算符返回值只会是boolaen类型
<
>
>=
<=
!=
==
*/
int n1 = 1;
int n2 = 2;
boolean n3 = n1>n2;
System.out.println(n1>n2);// false
System.out.println(n3);// false
// 逻辑运算符
/*
&(单与)
|(单或)
^(异或)
!(非)
&&(双与)
||(双或)
面试题
&和&&的区域别是什么?
&: 如果左边为false,那么右边依然执行,结果为false
&&: 如果左边为false,那么右边就不在执行了,结果为false
|和||的区别是什么?
|: 如果左边为true,那么右边依然执行,结果为true
||: 如果左边为true,那么右边就不在执行了,结果为true
结论:推荐使用&&,||,提升效率
*/
// &(单与) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是false,那么结果就为false
System.out.println(true & true);// true
System.out.println(true & false);// false
System.out.println(false & true);// false
System.out.println(false & false);// false
// |(单或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是true,那么结果就为true
System.out.println(true | true);// true
System.out.println(true | false);// true
System.out.println(false | true);// true
System.out.println(false | false);// false
// ^(异或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值如果两边相同就是false,两边不同就是true
System.out.println(true ^ true);// false
System.out.println(true ^ false);// true
System.out.println(false ^ true);// true
System.out.println(false ^ false);// false
// !(非) 注意:首先两边的数据必须是boolean类型,结论:取反值,!!偶数取正
System.out.println(!true);// false
System.out.println(!false);// true
System.out.println(!!true);// true
System.out.println(!!!true);// false
// &&(双与) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是false,那么结果就为false
System.out.println(true && true);// true
System.out.println(true && false);// false
System.out.println(false && true);// false
System.out.println(false && false);// false
// ||(双或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是true,那么结果就为true
System.out.println(true || true);// true
System.out.println(true || false);// true
System.out.println(false || true);// true
System.out.println(false || false);// false
// 位运算符
/*
&(与位运算)
|(或位运算)
^(异或位运算)
~(按位运算)
>>(右移位运算)
<<(左移位运算)
>>>(无符号右移位运算)
什么是位运算符:两边的数据都是数字,结果也为数字
*/
System.out.println(3 & 2);// 2
}
}
//运算符
public class day2 {
public static void main(String[] args) {
int a = 3;
int b = 2;
// 加号运算符
System.out.println("a+b="+(a+b));// 代码计算括号的优先级高于字符串 结果:a+b=3
System.out.println(a+"+"+b+"="+(a+b));// 字符串拼接 结果:1+2=3
// 除法运算符
System.out.println(a/b);
// 取余运算符
System.out.println(a%b);
int c = 4;
/*
注意:赋值运算时不一样
未参与运算
c++或++c 等于c = c+1
int c = 4;
System.out.println(c++);
参与运算
++在前,先自身加1,然后在参与运算
int c = 1;
int d = c++;
System.out.println(d);// 结果2
++在后,先参与运算,然后自身加1
int c = 1;
int d = ++c;
System.out.println(d);// 结果1
*/
System.out.println(c++);
int e = 4;
/*
注意:赋值运算时不一样
未参与运算
e--或--e 等于e = e+1
int e = 4;
System.out.println(e--);
参与运算
--在前,先自身减1,然后在参与运算
int e = 1;
int d = e--;
System.out.println(d);// 结果2
--在后,先参与运算,然后自身减1
int e = 1;
int d = --e;
*/
System.out.println(c--);
int i = 10;
//int j = i++ + ++i + i-- + --i
int v = i++; // v=10 i=11
int v1 = ++i; // v1=12 i=12
int v2 = i--; // v2=12 i=11
int v3 = --i; // v3=10 i=10
int v4 = v+v1+v2+v3;
System.out.println(v4);
// 赋值运算符
/*
=
+=
-=
*=
/=
%=
*/
int n = 1;
n +=2;// n = n + 2
System.out.println(n);
//关系运算符
/* 注意:关系运算符返回值只会是boolaen类型
<
>
>=
<=
!=
==
*/
int n1 = 1;
int n2 = 2;
boolean n3 = n1>n2;
System.out.println(n1>n2);// false
System.out.println(n3);// false
// 逻辑运算符
/*
&(单与)
|(单或)
^(异或)
!(非)
&&(双与)
||(双或)
面试题
&和&&的区域别是什么?
&: 如果左边为false,那么右边依然执行,结果为false
&&: 如果左边为false,那么右边就不在执行了,结果为false
|和||的区别是什么?
|: 如果左边为true,那么右边依然执行,结果为true
||: 如果左边为true,那么右边就不在执行了,结果为true
结论:推荐使用&&,||,提升效率
*/
// &(单与) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是false,那么结果就为false
System.out.println(true & true);// true
System.out.println(true & false);// false
System.out.println(false & true);// false
System.out.println(false & false);// false
// |(单或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是true,那么结果就为true
System.out.println(true | true);// true
System.out.println(true | false);// true
System.out.println(false | true);// true
System.out.println(false | false);// false
// ^(异或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值如果两边相同就是false,两边不同就是true
System.out.println(true ^ true);// false
System.out.println(true ^ false);// true
System.out.println(false ^ true);// true
System.out.println(false ^ false);// false
// !(非) 注意:首先两边的数据必须是boolean类型,结论:取反值,!!偶数取正
System.out.println(!true);// false
System.out.println(!false);// true
System.out.println(!!true);// true
System.out.println(!!!true);// false
// &&(双与) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是false,那么结果就为false
System.out.println(true && true);// true
System.out.println(true && false);// false
System.out.println(false && true);// false
System.out.println(false && false);// false
// ||(双或) 注意:首先两边的数据必须是boolean类型,结论:校验如果返回值有一个是true,那么结果就为true
System.out.println(true || true);// true
System.out.println(true || false);// true
System.out.println(false || true);// true
System.out.println(false || false);// false
// 位运算符
/*
&(与位运算)
|(或位运算)
^(异或位运算)
~(按位运算)
>>(右移位运算)
<<(左移位运算)
>>>(无符号右移位运算)
什么是位运算符:两边的数据都是数字,结果也为数字
*/
System.out.println(3 & 2);// 2
}
}