JAVA学习日记(二)运算符+流程控制语句

(三)赋值运算符

‘+=’ 加后赋值,‘-=’减后赋值,‘*=’乘后赋值,‘/=’除后赋值,‘%=’取余后赋值

底层隐藏了一个强制类型转换。 例:short s=1;s+=1;等价于 s = (short)(s+1)

(四)关系运算符

‘==’判断两边相等,相等返回true,不相等为false。

‘!=’判断是否不相等,不相等返回true,相等返回false。

‘>’,‘>=’,‘<’,‘<=’同理。

关系运算符返回的都是Boolean类型。

(五)逻辑运算符

‘&’ 逻辑与(且)  两边都为真结果才为真。

‘|’ 逻辑或   两边都为假结果才为假

‘^’ 逻辑异或  相同为false,不相同为true

‘ !’ 逻辑非  取反

(六)三元运算符/三元表达式

格式:  关系表达式?表达式1:表达式2;

例:  求两个数的较大值      int max= a>b?a:b;

          条件判定:   int temp=temp==0?x-y:temp;

      (当temp==0条件满足时,取值为x-y,条件不满足时,取值为temp本身)

(七)运算符优先级

‘()’优先于所有,想要谁先计算使用‘()’。

六、原码、反码和补码

原码:十进制数据的二进制表现形式,最左边的是符号位 0为正,1为负。

反码:正数的补码反码时其本身,负数的反码时符号位保持不变,其余位取反。

补码:整数的补码时其本身,负数的补码是在其反码的基础上+1。

二进制负数的加减运算首先需要将负数转为反码再进行运算,结果转为原码就是正确结果。

但如果负数的加减运算跨零了,如 -6+7,则会出现问题。根本原因是0的反码有两种情况:-0与+0

因此当负数跨零运算时有1的误差。而补码的存在就是为了消除误差。

计算机中的存储计算都是以补码的形式进行的。 

在二进制运算中‘&’、‘|’可参与运算,规则同为:0为false,1为true。(0,1均为对应二进制位进行的逻辑运算结果)

除此以外还有左移运算符‘<<’,规则为:二进制码向左移动,低位补0。

右移运算符‘>>’,规则:二进制码向右移动,高位补0或1(与原数符号位一致)。

无符号右移运算符‘>>>’,规则:向右移动,高位补0。

七、流程控制语句

(一)IF语句

第一种格式:  if(关系表达式){ 语句;}  //若语句只有一句,大括号 ‘{ }’ 可以不写。若对一个Boolean类型变量进行判断,不要用‘==’判断,直接将变量作为关系表达式。

第二种格式: if(关系表达式){ 语句体1;} else{  语句体2; } 

第三种格式: if(关系表达式1){ 语句体1;}else if(关系表达式2){ 语句体2;}.....else{ 语句体n+1;}        

(二)SWITCH语句

格式:

switch(表达式){

case值1:语句体1;break;

case值2:语句体2;break;

...

case值n:语句体n;break;

default:                                               //若所有的case值都未匹配,则进行default语句

语句体n+1;break; 

}                                                             // defaul可以省略,不建议。位置随意,建议放在最后。

// break表示跳出switch语句

case穿透:当case有多个值都进行同类型的语句体时,可以利用case穿透编写代码。

例: case 1:

        case 2:语句体2;break;   //此时case1 和 case2 进行同种操作

(三)循环语句

①For循环

格式   for(int i=1;i<=10;i++){  语句体;}

//变量若定义在循环体内,则在本次循环结束时变量会消失,第二次循环开始时,会重新定义新的变量。

②While循环

格式:while(条件判断语句){  循环体语句;条件控制语句;}  //判断语句为true则循环继续,为false则循环结束。

区别:

for循环中控制循环的变量在循环结束后,不能被再次访问。//for(int i=1;i<100;i++)

while循环中控制循环的变量,对于while循环来说不影响再次访问  //int i=1; while(i>0){  }

for循环知道循环的次数和循环的范围,而while循环不知道循环的次数和范围,只知道循环的结束条件。

③do...while循环

格式:do{ 循环体语句;条件控制语句;}while(条件判断语句);   //先执行后判断

④无限循环

for(;;){ 循环体语句;}

while(true){ 循环体语句;}    //最常用

do{ 循环体语句;}while(true);

无限循环下面不能再有代码,因为永远执行不到。

(四)跳转控制语句

     循环中使用continue;表示跳过本次循环

     循环中使用break;表示跳出整个循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值