运算符和流程控制

运算符

算术运算符

符号说明
+1)数值型的加减运算,数值型【byte、short、int、long、float、double、char】;2)表示正号;3)对字符串进行拼接
-1)数字型的减法运算;2)表示负号
*乘法运算
/除法运算;注意:1)整数相除,结果还是整数–地板除 2)double和float保存的是一个近似值
%取余、求模;符号看被除数;,被除数和除数可以为小数
++自增 :1)前置:先自增再运算2)后置:先运算再自减
–符号自减

比较运算符

结果为布尔型
<、>、<=、<=
可以对数值型的进行比较运算。
如果成立,结果为true 否则,为false
==、!=
如果成立,结果为true 否则,为false
针对引用类型是,比较的是两个引用是否指向同一块内存地址

逻辑运算符

只针对布尔类型及逆行运算,运算结果也是布尔类型

1. 逻辑与 &&、&

当连个操作数都为true时,结果为true,否则结果为false。

2. 逻辑或 ||、|

当两个操作数都为false时,结果为false,否则为true。

3. 逻辑非 !

单目运算符
当操作数为true时,结果为false,否则为true。

4. 短路运算符

针对&&、||两种逻辑运算。
当第一个操作数,已经能够确定运算及结果时,第二个操作数将不会执行。
&&:A&&B 如果A=false;结果必然是flase,B就不需要再进行运算了。
||:A||B 如果A=true是;结果必然是true,B就不需要再进行运算了。

位运算符 (补码运算)

  • 按位与 &

两个操作位的对应位都是1,结果的对应位也是1,否则就是0。
1010 &1011 = 1010
3&5=011&101=001
byte: 3&-5=000000011&11111011=00000011
负数->二进制:去掉符号-1求二进制 ,再按位取反
二进制->负数:按位取反转换成十进制加1 后的结果取负数

  • 按位或 |

两个操作数的对应位都是0时,结果的对应位也是0,否则为1。

  • 按位异或 ^

当两个操作数的对应位不同时,结果的对应位是1,否则就是0。

  • 按位取反 ~

单目运算符

  • 左移位 <<

所有的二进制位向左移动指定的位数
7<<2 相当于7*4

  • 右移位 >>

所有的二进制位向右移动指定的位数,左侧补符号位
7>>n 相当于7除以2的n次方

  • 无符号右移位 >>>

所有的二进制位,全部向右移动知道你过的位数,左侧补0

赋值运算符 (=)

为变量、常量进行赋值操作

赋值时,需要给变量、常量指定一个类型符合的值
赋值运算符还可以与常见的耳目运算符组合成为复合赋值运算符
+=、-=、*=、/=、%=、···
A+=B:相当于 A=A+B
byte b1=10;
b1=b1+10 //不合法
b1+=10 //合法
复合赋值运算符再运算的时候,会自动对数据类型进行转换

三目运算符

A?B:C

A:必须为布尔类型
当A的值是true时,整个表达式的是B;
当A的值是false时,整个表达式时C;

三目运算符和赋值运算符,比较特别。他们的结合性时从右向左的。

int i2,i3;
i2=i3=5;	//相当于 i2=(i3=5)

int i4=3,i5=4;
int i6,i7=7;
i4>i5?i5>i6?i5:i6:i6>i7?i6:i7
//i4>i5?(i5>i6?i5:i6):(i6>i7?i6:i7)

运算符的优先级

优先级运算符结合性
1()、[]、{}–>
2!、+、-、~、++、–<–
3*、/、%–>
4+、-–>
5<<、>>、>>>–>
6<、<=、>、>=、instanceof–>
7==、!=–>
8&–>
9^–>
10一个竖(或)–>
11&&–>
12两个竖–>
13?:<–
14=、+=、-=、*=、/=、&=、……=、~=、<<=、>>=、>>>=、<–

流程控制

控制代码执行的顺序

顺序结构(最基本的执行方式)

代码从前往后,一行一行顺序执行

选择分支

根据一定的条件进行判定

条件成立时,执行一部分代码;
条件不成立时,执行另一部分代码。

if(条件表达式1{
	pass
}
else if(条件表达式2{
	pass
}
//```
else{
	pass
}
switch (){
  case value1:
  		{}
  		break;
  case value2:
  		{}
  		break;
  	...
  default:
  		{}
  		break;
  	
}
//表达式:可以是byte、short、int、char。后期版本中加入了String、枚举。
//会一行一行执行,直到遇见break;若无break则一致执行到最后。
//如果没有任何一支case的常量值相匹配,进入default进行执行

注意

循环结构

本剧一定的条件,进行判定:
如果条件成立,重复执行同一段代码;
若条件不成立,则结束循环。
while
do···while
for

//while
while(条件表达式){
	pass
}
//do-while
do{
	pass
}while();
//必须以分号结束
//for
for(初始化表达式;条件表达式;迭代表达式){
	循环体
}

while与do-while的区别:

1)语法结构:while是条件在前,循环体在后;do-while是循环体在前,条件再后。
2)执行循序:while先进行条件判断,再执行循环体;do-while先进行循环体,在执行条件。
3) 执行结果:while循环体可能一次也不执行;do-while循环体至少执行一次。

循环的控制:
1)break
1】用在switch 中,结束switch
2】用在循环中,结束循环
2)continue
1】在循环中,跳过这次循环,进行下一次循环
3)return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值