黑马程序员技术交流社区

标题: Java基础第三天笔记 [打印本页]

作者: pengjk    时间: 2016-1-9 22:07
标题: Java基础第三天笔记
逻辑运算符
&:逻辑与  遇false则false
|:逻辑或  遇true则true
^: 逻辑异或 相同则false 不同为true
!: 逻辑非 取反 非true则false 非false则true

&&:结果和& ,如果左边为false右边不执行,结果是false
||:结果和|一样,如果左边为true右边不执行,结果是true

位运算符:
&: 位与,有0则0
|: 位或,有1则1
^: 位异或,相同则0,不同则1
~: 位取反,按位取反,包括符号位。0变1,1变0
<<:左移        左边最高位丢弃,右边补齐0
>>:右移        最高位是0,左边补齐0;最高为是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0

面试题: 2 * 8
                2 << 3  //相当于 2 * 2的3次幂


面试题:实现两个整数变量的交换
                a = a ^ b;
                b = a ^ b;
                //b = a ^ b ^ b;
                //b = a;
                a = a ^ b;
                //a = a ^ b ^ a ^ b ^ b;
                //a = b ;

                int temp = a;
                a = b;
                b = temp;

三元(目)运算符:
        格式:条件(关系)表达式 ? 表达式1 :表达式2;

        练习题:1、比较两个整数是否相同。
                        boolean b = (2 == 3)? true : false; //false
                        2、求三个整数中的最大值
                        int temp = (a > b) ? a : b;
                        int max = (temp > c) ? temp : c;

键盘录入:
        Scanner:
        步骤:
                /*
                1 导包
                */
                import java.util.Scanner;
                class Demo_Scanner {
                        public static void main(String[] args) {
                                //创建Scanner对象
                                Scanner sc = new Scanner(System.in);
                                System.out.println("请输入第一个数据:");
                                //提示
                               
                                //调用键盘录入的方法
                                int  i = sc.nextInt();

                                //提示
                                System.out.println("请输入第二个数据:");
                                //调用键盘录入的方法
                                int  j = sc.nextInt();

                                //输出这个值
                                System.out.println("这两个数的和是:"+(i+j));
                        }
                }
练习:
        1、键盘录入两个数据,比较这两个数据是否相等。
        2、键盘录入三个数据,获取这三个数据中的最大值。

流程控制语句:可以控制程序的执行流程。
分类:
        顺序结构:从上往下,依次执行

        选择结构:
                if语句:
                        格式1.  if( 条件表达式 ) {
                                        语句体;
                                }
                        执行流程:
                                先计算比较表达式的值,看其返回值是true还是false。
                                如果是true,就执行语句体;
                                如果是false,就不执行语句体;

                注意事项:        1.条件表达式不论简单还是复杂,结果都是布尔类型的!
                                        2.if语句控制的语句体如果是一条语句,大括号可以省略;
                                                如果是多条语句,就不能省略。建议永远不要省略。
                                        3.一般来说if的小括号后边,有分号就没有左大括号,有左大括号就不能有分号。

                        格式2. if(条件表达式) {
                                                语句体1;
                                        }else {
                                                语句体2;
                                        }
                                执行流程:
                                        首先计算比较表达式的值,看其返回值是true还是false。
                                        如果是true,就执行语句体1;
                                        如果是false,就执行语句体2;
                               

                        格式3.        if(条件表达式1) {
                                                语句体1;
                                        }else if(条件表达式2) {
                                                语句体2;
                                        }else {
                                                语句体3;
                                        }
                        if与三元运算符的关系:三元运算符可以实现的,if都可以实现,反之不一定。

                        练习题:键盘录入一个成绩,判断(判断标准见备注)并输出成绩的等级。
                                        90-100 优
                                    80-89  良     
                                    70-79  中     
                                    60-69  及    
                                    0-59   差

                switch语句:
                        格式:
                        switch(表达式) { //byte short char int  1.5 枚举 1.7 String
                               
                                case 值1:
                                        语句体1;
                                        break;
                                case 值2:
                                        语句体2;
                                        break;
                                default:
                                        语句体3;
                                        break;
                        }

                        执行流程:
                                1.先计算表达式的值
                                2.然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
                        练习题:给定一个值(整数),输出对应星期几。
                                1        星期一
                                2        星期二
                                ....

                        注意事项:
                                1.case对应的值一定是常量。
                                2.default可以不写,也可写到最前面。
                                3.break必须写,不写可能会产生case穿透。
                                4.结束条件:遇到break,遇到switch的右大括号。

                        习题:
                        A:看程序写结果:
                        int x = 2;
                        int y = 3;
                        switch(x){
                            default:
                                y++;
                                break;
                            case 3:
                                y++;
                            case 4:
                                y++;
                        }
                        System.out.println("y="+y);//4
                    
                        B:看程序写结果:
                        int x = 2;
                        int y = 3;
                        switch(x){
                            default:
                                y++;
                            case 3:
                                y++;
                            case 4:
                                y++;
                        }
                        System.out.println("y="+y);//6

                        if和switch的区别:
                                if判断区间范围
                                switch判断具体固定的值





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2