Java day04
基础运算符(已掌握)
逻辑运算符:&&(and),||(or),!(非)
public class Demo01 { public static void main(String[] args) { // 二元运算符 // Ctrl + D : 复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b);//30 System.out.println(a-b);//-10 System.out.println(a*b);//200 System.out.println(a/b);//0 (?) (x) System.out.println((double)a/b);//0.5 (correct) } }
public static void main(String[] args) { long a = 1231231231231231L; int b = 123; short c = 10; byte d = 8; //如果计算里面有Long/double类型结果就是Long/double类型,除此都是int System.out.println(a+b+c+d);//1231231231231372 Long类型 System.out.println(b+c+d); //141 int类型 System.out.println(c+d);//18 int类型 }
关系运算符
public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果: 正确,错误 布尔值 int a = 10; int b = 20; int c = 21; System.out.println(c%b);//1(余数用%) System.out.println(a>b);//false System.out.println(a<b);//true System.out.println(a==b);//false System.out.println(a>=b);//false System.out.println(a<=b);//true } }
自增自减*(一元运算符)
public class Demo04 { public static void main(String[] args) { //++ -- 自增, 自减 一元运算符(一个数) int a = 3; int b = a++; //执行完这行代码后, 先给b赋值,再自增(先b=a,再a=a+1) //a++ a = a + 1 System.out.println(a); //++a a = a + 1 int c = ++a; //执行完这行代码前,先自增,再赋值(先a=a+1,再c=a) System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 2^3 2*2*2 = 8 double pow = Math.pow(2, 3);//2的3次方,Math.pow(2,3) System.out.println(pow); } }
逻辑运算符
public class Demo05 { public static void main(String[] args) { //与(and)&& 或(or)|| 非(取反)! boolean a = true; boolean b = false; System.out.println("a && b: "+(a&&b));// a && b: false //逻辑运算:and,两个变量都为真,结果才为true System.out.println("a || b: "+(a||b));// a || b: true //逻辑运算:or,如果有一个是真的就是true System.out.println("! (a && b) :"+!(a&&b));// ! (a && b) :true //!相反就完事儿了 //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); } }
位运算
public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 ---------------------- A&B = 0000 1100 A|B = 0011 1101 A^B(异或) = 0011 0001 ~B(取反) = 1111 0010 2*8 = 16 2*2*2*2 效率极高!!! << (左移) 相当于*2 >> (右移) 相当于/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0000 0110 6 0000 0111 7 0000 1000 8 0001 0000 16 0010 0000 32 */ System.out.println(2<<3);//16 }
字符串连接符
public static void main(String[] args) { int a = 10; int b = 20; a+=b; // a = a + b output:30 a-=b; // a = a - b output:10 System.out.println(a);//10 //字符串连接符 + , String System.out.println(a+b);//30 System.out.println(""+a+b);//1020 如果字符串在前面后面的会拼接不会计算 System.out.println(a+b+"");//30 因为字符串在后面前面还是会先计算出来 }
条件运算符*
//三元运算符 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true,则结果为y,否则结果为z //x为条件,y为true,z为false int score = 80; String type = score < 60?"不及格":"及格";//必须掌握 // if System.out.println(type);//及格 } }
运算优先级 ()

浙公网安备 33010602011771号