本人正在自学中,为了更好的了解和复习特此对每天学习的知识做总结,也希望可以帮助同在自学的朋友,谢谢!
一、运算符
a、算术运算符:+-* / % ++--
注意:1、+的用法:加号、正号、连接符
2、/与%的区别:做除法操作的时候,/取得是商,%取得是余数
3、++和--的用法:自增或者自减
当++和--单独使用的时候,放在数据的前面或后面的效果一样
当++和--参与操作的时候,放在数据的前面:先自增或自减后参与操作
放在数据的后面:先参与操作后自增或自减
b、逻辑运算符:& | ^ ! && ||
逻辑运算符用于boolean类型
&:有false则false
|:有true则true
^:相同则false不同则true
!:非true则false,非false则true
&&:结果与&一样,不过有短路效果,即前面为false时后面就不会再执行
||:结果与|一样,不过有段路效果,即前面为true时后面就不会在执行
c、赋值运算符:= ==+= -=/=%= 等
=为赋值运算符不是等号
例:int a = 5;意思是把5赋值给int类型的变量a
扩展:面试题
A、short s = 1;
s = s + 5;
B、short s = 1;
s += 5;
问上面语句哪句是错误的?A(数据类型错误,s = s + 5;的数据类型是int类型)
d、比较运算符:> >=< <= ==!=
无论比较运算符的两端简单还是复杂返回的结果都是boolean类型
e、位运算符:^
1:^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
2:面试题
a:请实现两个变量的交换
**采用第三方变量int temp = a;
a = b;
b = temp;
**用位异或运算符
a = a ^ b;b = a ^b;
a = a ^b;
b:请用最有效率的方式计算出2乘以8的结果
2<<3(相当于2*2^3)f、三目运算符:(条件表达式)?表达式一:表达式二;
执行流程:首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。
案例:a:比较两个数据是否相等
b:获取两个数据中的最大值
c:获取三个数据中的最大值
二、流程控制语句
(1)顺序结构 从上往下,依次执行
(2)选择结构 按照不同的选择,执行不同的代码
(3)循环结构 做一些重复的代码
三、if条件语句
A:格式1
if(比较表达式) {
语句体;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体
如果是false,就不执行语句体
B:格式2
if(比较表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
判断比较表达式的值,看是true还是false
如果是true,就执行语句体1
如果是false,就执行语句体2
C:格式3
if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}
执行流程:
判断比较表达式1的值,看是true还是false
如果是true,就执行语句体1
如果是false,就继续判断比较表达式2的值,看是true还是false
如果是true,就执行语句体2
如果是false,就继续判断比较表达式3的值,看是true还是false
...
如果都不满足,就执行语句体n+1
(2)注意事项
A:比较表达式无论简单还是复杂,结果是boolean类型
B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。
建议:无论如何都 不要省略。
C:一般来说,有左大括号,就没有分号,有分号,就没有左大括号。
D:else后面如果没有if,是不会出现比较表达式的。
E:三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。
(3)案例:
A:比较两个数是否相等
所有的三元运算符能够实现的,if语句的第二种格式都能实现。
反之不成立。
如果if语句第二种格式控制的语句体是输出语句,就不可以。
因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。