外观
运算符
运算符
三目运算符
模式:
逻辑表达式 ? 表达式为true的返回值 : 表达式为false的返回值
作用:
1.三个操作数,简化了分支结构。(if......else......)
例:
//采用if else结构
// if (rectangleWidth<=0||rectangleHeight<=0) {
// System.out.println("输入错误!");
// System.exit(0);
// }else {
// System.out.println("面积为:"
// +(rectangleHeight*rectangleWidth));
// }
//使用三元运算符
System.out.println(rectangleWidth<=0||rectangleHeight<=0
? "输入错误"
: "面积为:"+rectangleHeight*rectangleWidth);
2.返回部分支持任意类型
注意:有变量接收返回值时,应注意返回值与变量的数据类型
3.可嵌套使用
int int1=5;
int int2=9;
int int3=int1 > 7 ? (int2 > 7 ? int2 : int1)
: (int2 > 7 ? int2 : int1);
System.out.println(int3);
赋值运算符
+=,-=,*=,/=,%=,&=,|=
增强赋值运算符不会有数据类型默认提升的问题。
位运算
~ ;//按位非
& ;//按位与
| ;//按位或
var<<n;//左移运算(相当于var*2^n)
var>>n;//右移运算(相当于var/2^n)
var>>>n;//无符号右移运算
其效率比*2^n效率高
其操作数的正负不影响结果。
运算符的优先级
位运算高于关系元素(除,&,|,^外)
1.操作数越少,优先级越高
2.括号优先级最高(. () {} , ++ -- ! (type))
3.单目运算符结合性大多为从右到左
结构化编程(三大结构)
1.只使用三大结构(顺序,选择,循环)
2.不准使用goto
java一行的含义:以“;”界定
总结
位运算应用:
再判断多选题时,如何判断一个选项是否被选中
每个选项占一位二进制数,计算和作为答案
将答案与要判断的选项的二进制数相与,结果为选项所对应的数则表示选中这个选项
例:
int A=1;//0000 0001
int B=2;//0000 0010
int C=4;//0000 0100
int D=8;//0000 1000
int E=16;//0001 0000
/*假设答案为:A,C,E。则可表示为:1+4+16=21 => 0001 0101;
若要判断C是否被选则使用C和答案进行与运算
0001 0101
& 0000 0100
= 0000 0100
4,代表选择了C
若要判断B是否被选则使用B和答案进行与运算
0001 0101
& 0000 0010
= 0000 0000
0,代表未选择B
*/
问题
这里书写今日所遇到问题及解决方法 不要忽略小问题,小问题也要记下来。( 勿以善小而不为 )
//第一种
int a=25;
System.out.println(a--/a++);
//结果为1
//第二种
int b=25;
System.out.println(b++/b--);
//结果为0
//为什么?
/*
分析:
第一种:
先取值25再进行/运算,此时a为24由于右边a++先取值再计算故右边为24
结果为25/24=1;
第二种:
先取值25再进行/运算,此时a为26由于右边a--先取值再计算故右边为26
结果为25/26=0;
充分体现了前++的先取值再自增的特性
*/
举例:
double a=25;
System.out.println(a--/a++);
double b=25;
System.out.println(b++/b--);
double c=25;
System.out.println(c++/c++);
double d=25;
System.out.println(d--/d--);
/*结果为:
1.0416666666666667 25/24
0.9615384615384616 25/26
0.9615384615384616 25/26
1.0416666666666667 25/24
*/
吐槽
这里是吐槽部分,内容不限。