逻辑运算符、位运算符、条件运算符和扩展赋值运算符以及字符串连接符
逻辑运算符
与&& 或|| 非!
package base;
public class Demo08 {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a&&b);//false,有假则假,其中0为假,非零为真
System.out.println(a||b);//true,有真则真
System.out.println(!(a&&b));//true,取反操作,单目运算符优先级最高,但是()优先级比单目运算符还高
//注意短路,例如b&&a,发现b为假就不用再运算后边的了,结果直接为假
int c = 5;
boolean d = (c<4)&&(c++<4);//c<4为假,短路则不执行c++,c的值依然为5
System.out.println(d);//false
System.out.println(c);//5
int i = 5;
boolean j = (i==5)&&(i++>5);//i先等于5,不短路,不大于5,结果为假,但之后i等于6
System.out.println(j);//false
System.out.println(i);
}
}
位运算符
将数转化为二进制进行位运算
与&,有假则假(0为假1为真)。
|或,有真则真。
~非,取反。
^异或,相同为假,不同为真。
左移<<,高位舍弃,低位补0,如果舍弃的高位没有1,则左移一位就是乘2。
右移>>,低位舍弃,高位补0,右移一位就是除以2,且舍去小数。
条件运算符
//三目运算符(条件运算符)
//x ? y : z
//如果x==true,则结果为y,否则为z
int score = 80;
String type = score>60?"及格":"不及格";
System.out.println(type);
扩展运算符以及字符串连接符
public class Demo09 {
public static void main(String[] args) {
int a = 10,b = 20;
a+=b;//结合方向是从右至左,a=a+b,30
a-=b;//10
System.out.println(a);
//字符串链接符+,String
System.out.println(a+b);
System.out.println("结果是"+a+b);//结果是1020,因为前面有字符串,后边的+连接符会把后边的转化为String
System.out.println(a+b+"结果是");//30结果是
初识Math类
double pow = Math.pow(2,3);//math就是错误的,M只能大写
System.out.println(pow);//8.0
//pow要是定义成int类型也会报错,因为Math.pow()返回的是double类型