四.java运算符与条件语句

  1. 2%-5//结果为2,因为正负应该由左边的数决定.

short s=4;
s=s+5;//会失败,原因为右边运算完必然是整数,无法判断范围是否在short内,容易造成精度丢失.
而 s+=5可以通过,因为会做自动转换

3.(重要)

短路与 :&& :
与&的区别,&无论左边结果,两边都会参与计算,而&&是当左边为false时,右边不参与运算

短路或 :||
|两边都会参与运算,而||当左边为true时右边不参与运算

  1. 位运算符**

a.  << :左移(移两个进制位)
规律:3<<1=6;---------(3* 2^1=6);
   3<<2=12; --------(3* 2^2=12)
左移就是乘以2的几次幂运算,移几位就是几次幂.
b.  >> :右移(将二进制码向右移动)
  规律:就是除以2的次幂运算,移几位就是几次幂.
      右移是原最高位是什么,空位就补什么
c.无符号右移:与右移运算符一样,空位都补0.
d. &:与运算:
      6&3=2;   
   6:  110
   3: &011
      ---------------
       010=2
   运用:当要获取001010011的后三位时,可以让他与00000111进行 与运算.
   即可用于获取二进制中的有效位1.
e. :或运算
   6|3=7:
    110
   |011
   ---------------
    111=7
f. :异或
   110
   ^011
   --------------
   101
规律:一个数异或另一个数两次后还是这个数
g.  ~ : 反码:
  ~6=-7

练习:

  • 最有效率的运算2乘以8:通过位移运算:
 system.out.println(2<<3);
  • 对2个整数变量的值进行互换(不需要第三方变量)
 int a=3,b=7;
   a=a^b;//a=3^7
     b=a^b;//b=3^7^7=3
     a=a^b;//a=3^7^3

5.三元运算符:

(条件表达式)?表达式1:表达式2

6.程序流程控制:

if ;  if{}else{}

7.switch

  • switch语句中的defalult 的摆放位置不会影响程序运行
  • 匹配的答案一直执行,执行到break或者switch结束
  • switch只支持byte,short,int,char,string
switch(controllingExpression)
{
    case constantExpression1:statement1;break;
    case constantExpression2:statement2;break;
    case constantExpression3:statement3;break;
    ...
    default:statement;
}

8.if可以用于判断数值也可以判断区间,而switch只用于判断固定值

9."\t" \代表制表符 可以用于对齐如九九乘法表
  \n:换行
    \r:换行

你可能感兴趣的:(四.java运算符与条件语句)