黑马程序员技术交流社区
标题: 学习第三天,学习笔记分享 [打印本页]
作者: wuzeshui 时间: 2016-1-9 21:31
标题: 学习第三天,学习笔记分享
逻辑运算符:&,|,^,!,&&,||
& 与,并且,and 遇到false结果就是false
| 或者,or 遇到true,就是true
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
^ 异或,两边相同为false,不同为true
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
! 非 取反,非ture则false,非false则true
&&和& 的最终结果一样,只是&&具有短路效果,左边为false右边不执行,效率较高 (注意下图的结果)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
|和||的最终结果一样,只是||具有短路效果,左边为true右边不执行,结果直接为true
位运算符
& 位与 有0则0
| 位或 有1则1
^ 位异或 相同就是0,不同就是1
~ 位取反 按位取反,包括符号位,0变1,1变0
<< 左移, 二进制数向左移动N位,右边补0
>> 右移, 向右 ,左边如果是0补0,如果是1补1
>>> 无符号右移 ,不管符号位是0或1,左侧都补0
&位与的练习:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
|位或的练习:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
~取反的练习:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
^ 位异或特点:一个数据对另一个数据位异或两次,该数不变
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg
面试题:
实现两个变量的交换 (图中三种方法)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg
<<左移:向左移动几位就是乘以2的几次幂
下方练习,输出的两个结果都是16,用<<的使用二进制运算,速度更快
2<<3相当于2*(2的三次幂)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
>>右移:向右移动几位,就是除以2的几次幂
(下图练习输出结果为6和3)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
三元(目)运算符:
(条件(关系)表达式) ? (表达式1) :(表达式2)
练习:比较两个整数是否相同 (下图用三元运算符和直接boolean运算都可以)
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg
练习:获取三个数的最大值
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.jpg
键盘录入
1.在class类上面导包:import java.util.Scanner;
2.在方法中创建对象:Scanner sc = new Scanner(System.in);
3.调用: inta = sc.nextInt();
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.jpg
流程控制语句:可以控制程序的执行流程
顺序结构:从上往下,一次执行
选择结构:
If语句
1. If(条件表达式){ |注意:1.条件表达式不论多复杂,结果都是
语句体; |布尔类型
} | 2.永远把if的大括号写上
| 3.if的小括号后面别写分号
2. If(条件表达式){ |注意:三元运算符可以实现的,if都可以
语句体1; | 实现,反之不一定
} else {
语句体2;
}
3. If(条件表达式){
语句体1;
} else if(条件表达式2){
语句体2;
}else{
语句体3;
}
Switch语句
Switch(表达式){ |基本数据类型可以接收byte,short,char,int
Case值1: |引用数据类型可以接收枚举(JDK 1.5以后)
语句体1; | 和String字符串(JDK 1.7以后)
break;
Case值2:
语句体2;
break;
default:
语句体3;
break;
}
注意:
1. case后面只能是常量,不能是变量,而且多个case后的值不能相同
2. default可以不写,也可以写到最前面。(建议写)
3. break必须写,不写可能会case穿透
4. 结束条件:遇到break,遇到switch的右大括号。
if和switch的区别:
If判断区间范围
switch判断具体固定的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |