Day06 8~10
++ (自增)
先赋值,再自增
--(自减)
先自增,再赋值
package operator;
public class Dome04 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符 **非常重要
int a=3;
int b=a++; //执行完这行代码后,先给b赋值,再自增
//a++ a=a+1; a=4
System.out.println(a); //a=4
//++a a=a+1; a=4
int c=++a; //执行完这行代码前,先自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
// ++重点在以后循环中使用
//for (int i = 0; i < ; i++) {
//幂运算 2^3=2*2*2=8 但Java中没有 ^ 运算符 很多运算,会使用一些工具来操作!
double pow = Math.pow(2, 3);
System.out.println(pow);
//Math.(会调出很多数学类运算) pow 为幂运算
}
}
a++:先赋值后,再自增
++a:先自增后,再赋值
自增:a=a+1
09 逻辑、位运算符
逻辑运算符
与
-
&&
或
-
||
非
-
!
位运算符
二进制运算方式为相同位进行比较
-
与:& 相同为均为1,则输出1
-
或:| 相同为均为0,则输出0
-
异或:^ 相同位同,则输出0;不同则输出1
-
取反:~ 所有位 1 0 都取反
package operator;
public class Dome06 {
public static void main(String[] args) {
/*
位运算: 与二进制有关的
A = 0011 1100
B = 0000 1101
-------------------
A&B = 0000 1100 &(与运算):对应位都为 1,则为 1;否则为 0
A/B = 0011 1101 /(或运算): 对应为都为 0,则为 0;否则为 1
A^B = 0011 0001 ^(异或运算): 对应位相同,则为 0;不同,则为 1 (可理解成同 1异 0)
~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 1000 8
*/
System.out.println(2<<3); //读作 2右移 3位 结果位:16
}
}
10 三元运算符及小结
扩展赋值运算符
+=:a = a+b
-+:a = a-b
*=:a = a×b
/=:a = a/b
package operator;
public class Dome07 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b; // a = a+b 一种偷懒的方法
//a-=b; // a = a-b
System.out.println(a); //30
//System.out.println(a); -10
//字符串连接符 + 前后有String类型,会把整个都转化为String,再进行连接
System.out.println(a+b);
System.out.println(""+a+b); // "" 空的字符串 把 a与 b的值连接起来了
System.out.println(a+b+""); //字符串在前会拼接,字符串在后依然会相加,再拼接
}
}
条件运算符
x ? y : z
如果a==true,则输出y,否则输出z
package operator;
//三元运算符 很重要!!! 必须掌握
//三元运算符 很重要!!! 必须掌握
//三元运算符 很重要!!! 必须掌握
public class Dome08 {
public static void main(String[] args) {
// x ? y : z
//如果x==true,则结果为 y,否则结果为 z
int score = 50;
String type = score < 60 ? "不及格" : "及格"; //必须掌握
// if
System.out.println(type);
}
}
运算中的优先级
()优先级最高