黑马程序员技术交流社区

标题: 学习第三天,学习笔记分享 [打印本页]

作者: 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
         !      非   取反,非turefalse,非falsetrue
         &&和& 的最终结果一样,只是&&具有短路效果,左边为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