赋值运算符的基本用法
赋值运算符有哪些:
=, +=,-=,*=,/=,%=
a+=1等价于a=a+1,-=同理
注意事项:
1.基本的赋值运算符:=
把=右边的数据赋值给左边。
2.扩展的赋值运算符:+=,-=,*=,/=,%=
举例说明
a+=1等价于a=a+1,其他同理
3.赋值运算符要求左边的数据必须是一个变量
关系运算符
关系运算符有哪些:
== ,!= , < , > , <= , >= , instanceof
注意事项:
无论你的操作是简单还是复杂,结果是boolean类型。
"=="不能写成"="。
逻辑运算符
逻辑运算符有以下几种:
&(与),|(或),!(非),^(异或),&&(短路与),||(短路或)
注意:
1.逻辑运算符一般用于对布尔类型进行运算。
2.表达式:就是运算符把常量或者变量连接起来符合java语法的式子。
算数表达式:a+b
关系表达式:a==b
当然还有逻辑表达式:false && false、false || true、false | true
逻辑表达式的使用与规律:
&逻辑与:有false则结果一定为false,必须两边都为true结果才为true。
|逻辑或:有true则结果一定为true,必须两边都为false结果才为false。
^逻辑异或:相同则为false,不同则为true
形象的生动举例:性别配对 男女在一起则是正确的,玻璃和百合则是错误的(这里没有对同性恋的其实只是举例子)
!逻辑非:这个就好理解了不(!)对(true)那就是错(false),不(!)错(false)那就是对(true)
重点啦!逻辑运算符短路与和短路或:
&&之所以称它为短路是因为&运算有个规律就是如果与符号左边是true其结果一定为true,左边 为false则结果一定为false。但是&运算符它会将左边和右边的数据进行逻辑运算。这样是不是多此一 举而且还影响效率,那么短路&&就是为了解决这个才产生的。
||与&&其实意思一个意思但是,需要注意||只有当左边为true的时候才会发生短路,左侧为 false的时候还是要进行正常的逻辑运算。
位运算符用法
位运算符符号:
&(与),|(或),^(异或),~(按位取反),<<(左移),>>(右移),>>>(无符号右移动)
&,|,^,~ 的用法(其实和boolean逻辑运算相同可以把1当成true,0当成false):
举例2&5:
左边的2的二进制 00010
右边5的二进制 00101
位运算结果 00111
需要注意:
1.位运算符两边是对一个数的“二进制补码"进行位的与运算。
2.符号位也参与&,|,^,~ 的位运算
结论:
&:有0则0 同逻辑&相似
|:有1则1 同逻辑|相似
^:相同则为0 通逻辑^相似
注意:1.一个数被另一个数位异或两次该数不变
2.一个是0与一个数做异或操作还是本身,本身与本身做异或操作为0
~:按位取反 同逻辑!相似 举例:2对应的二进制数10补码也是10 ~2结果是01(01的 补码也是01) 算出来的补码就是01转换成输出值就是-3
位运算符的左移和右移以及无符号右移:
位移符号:
<<:左移 空位补0,被移除的高位丢弃
>>: 右移 被移位的二进制最高位是0,右移后,空缺位补0.最高位是1则高位补1
>>>: 无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
位运算符可以用来计算而且效率比以往计算方式要搞:
使用方式
<<: 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
>> : 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5
三元运算符
三元运算符的格式为:
(关系表达式)?表达式1:表达式2:
例子比较两个数的大小
int a=(10>20)?10:20; 输出为20
三元运算符的处理过程:
首先通过关系表达式里面进行判断如果成立则为true,那么就输出表达式1里面的值,负责输出表达式2 中的值
三元运算符的条套举例说明:
例如比较三个数a,b,c的大小。通过三元运算符计算:
int max=a>b?(a>c?a:c):(b>c?b:c);
键盘输入数据的基本格式讲解
用法:
1.首先在class类上面导入包使用代码 import java.util.Scanner
2.创建录入对象 Scanner sc=new Scanner(System.in);
3.通过对象获取数据
格式:
int number=sc.nextInt(); //当程序运行到这里的时候就会阻塞住,需要等待用户输入 然后回车。
注意int初始化的是什么类型那么用户就必须输入相应的数据类型。
语句结构学习
选择语句结构if与swicth:
if语句结构:
一般的形式 :
if(表达式)
{语句体1}
else
{语句体2}
else if形式:
if(表达式)
{语句体}
else if()
{语句体}
.....
else
{语句体}
if嵌套语句结构:
if(表达式)
{if(语句体)
{
语句体
}
}
eles
{语句体}
if的执行流程:
1.首先计算比较表达式的值,看其返回值是true还是false。
2.如果是true,就执行语句体1;
3.如果是false,就执行语句体2;
switch语句结构:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
....
default:
语句体n+1;
break;
switch语句的格式解释:
1.表达式的取值:byte,short,int,char
2.JDK5以后可以是枚举(什么是枚举,以后再讲)
3.JDK7以后可以是String
4.case后面跟的是要和表达式进行比较的值
5.语句体部分可以是一条或多条语句
6.beak表示结束的意思,可以结束switch语句,如果不写break则会继续执行直到碰到 break或者整个语句执行完毕才会停止。
7.dfault语句表示所有case都不匹配的时候,就执行该处的内容,和if语句的else相似
总结:
语句结构这块建议多练多思考就是一些逻辑的运算。