Day04
自增自减运算符
++ 与-- 注意a++与++a的区别
package base;
public class Demo10 {
public static void main(String[] args) {
// ++ -- 自增 ,自减 一元运算 符
int a=3;
int b=a++; // 此时b=3,
//执行完这行代码后,先给b赋值,再自增
//即:b=3,然后a=a+1
System.out.println(a); //a=a+1=4
int c=++a; //执行完这行 代码前,先自增,再给c赋值
System.out.println(b);
System.out.println(c);
//幂运算 2*2*2=8
//很多运算会使用 一些工具类 来进行运算 eg:Math类
double piw=Math.pow(3,2);
System.out.println(piw);
}
}
逻辑运算符
与运算:两个为真则运算结果为真 +(a&&b) 或运算:两个中的一个为真,则计算结果为真 +(a||b) 非运算:如果为真,则为假,如果为假则为真 +!(a&&b)
package base;
public class Demo11 {
//逻辑运算符 与 或 非(取反)
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));
//逻辑运算:两个变量都为真 ,结果才为真 在计算a&&b的时候,若a为假,则直接结束运算
//不会进行下一步的运算
//详情见下方的短路运算
System.out.println("a || b:"+(a||b));
//或运算: 两个变量又一个为真,则运算结果为真
System.out.println("!a && b:"+!(a&&b));
//非运算,如果是真,则为假,如果是假,则为真
注意短路运算: 在计算a&&b的时候,若a为假,则直接结束运算不会进行下一步的运算
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c); //输出c的结果为5
/*
因为c<4为false,所以就终止了下一步(c++<4)的计算
所以输出的c结果为5,如果计算了 (c++<4),则输出结果应该为 6
以上为短路运算
*/
位运算
A&B:如果两个都为1,则为1 A|B:如果对位有一个1,则为1(如果对应位都是0,则为0,否则为1) A^B:(异或)如果对应位相同则为0,否则为1 ~B:(取反)与对应位完全相反
举例如下:
/*
A=0011 1100
B=0000 1101
则:
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B=1111 0010
*/
位运算效率高,是直接与二进制打交道 左移<< :*2 右移>> : /2 如下图:(涉及计算机的组成)
位运算符:
左移,<< *2
右移,>> /2
2*8=16 2*2*2*2=2<<3
如下:
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
条件运算符:重点(疑问)
三元运算符
?和:
// x ? y : z // 如果x==true,则结果为y,否则结果为z
public class Demo14 {
//条件运算符:?和:
public static void main(String[] args) {
// x ? y : z
// 如果x==true,则结果为y,否则结果为z
int score=80;
String type=score <60 ?"不及格":"及格";
//if语句
System.out.println(type);
}
}
优先级:(),