逻辑运算符:&,|,^,!,&&,|| & 与,并且,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判断具体固定的值
|