黑马程序员技术交流社区

标题: java基础第二天笔记 [打印本页]

作者: 15891252910    时间: 2016-8-6 13:12
标题: java基础第二天笔记
运算符
        算术运算符
        赋值运算符
        关系运算符

        逻辑运算符
        位运算符
        三元运算符

1,逻辑运算符
        与& : 遇false则false
        或| : 遇true则true
        异或^ : 相同为false,不同为true
        非! : 非true则false,非false则true

        注意事项:
        a:逻辑运算符一般用于连接boolean类型的表达式或者值。
        b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
                算术表达式:a + b
                比较表达式:a == b(条件表达式)

        & 和&&区别
                结果相同,&&具有短路效果,左边为false,右边不执行
        |和||区别
                结果相同,||具有短路效果,左边为true,右边不执行

2,位运算符
        & ,| ,^ ,~(位非)的用法
                &:有0则0
                |:有1则1
                ^:相同为0,不同为1
                ~:按位取反
       
        位异或运算符的特点
        ^的特点:一个数据对另一个数据位异或两次,该数本身不变。

        << >> >>>的用法
                <<:左边最高位丢弃,右边补齐0
                >>:最高位是0,左边补齐0;最高为是1,左边补齐1
                >>>:无符号右移 无论最高位是0还是1,左边补齐0
                最有效率的算出2 * 8的结果  //2<<3

                左移,向左移动几位就是乘以2的几次幂
                右移,向右移动几位就是除以2的几次幂

3,三元运算符
        格式:
                (关系表达式)?表达式1:表达式2;
        执行流程:
                先判断关系表达式的结果,如果是true执行表达式1,如果是false执行表达式2

                获取三个整数中的最大值
                int temp = (a > b) ? a : b;
                int max = (temp > c) ? temp : c;
0
4,键盘录入
        三部曲:
                a:导包
                        import java.util.Scanner;
                b:创建键盘录入对象
                        Scanner sc = new Scanner(System.in);
                c:获取数据
                        int a = sc.nextInt();

        学习方式
                首先,把当天的内容掌握
                然后是复习之前的内容
                最后才是预习后一天的内容


5,流程控制语句
        (1),顺序结构
        (2),选择结构
                A:if语句
                        a:格式1:
                                if(条件表达式) {
                                        语句体;
                                }
                                执行流程:
                                        * 执行条件表达式,看结果是true还是false;
                                        * 如果是true,执行语句体;
                                        * 如果是false,跳过if语句;
                                注意事项
                                        * 条件表达式不管是简单还是复杂,其结果必须是boolean类型
                                        * 一般来说,语句体如果是一条语句,可以省略大括号,如果是多条语句的话,是不能省略大括号,建议永远不要省略
                                        * 有左大括号就没有分号,有分号就没有左大括号
                        b:格式2
                                if(条件表达式) {
                                        语句体1;
                                } else {
                                        语句体2;
                                }
                                执行流程:
                                        * 执行条件表达式,看结果是true还是false
                                        * 如果是true,执行语句体1
                                        * 如果是false,执行语句体2
                                三元运算符和if语句格式2的区别:
                                        * 三元运算符可以实现的,if语句都可以,反之不成立
                        c:格式3
                                if(比较表达式1) {
                                    语句体1;
                                }else if(比较表达式2) {
                                    语句体2;
                                }else if(比较表达式3) {
                                    语句体3;
                                }
                                ...
                                else {
                                    语句体n+1;
                                }
                                执行流程:
                                        * 执行关系表达式1,看结果是true还是false
                                        * 如果是true,执行语句体1
                                        * 如果是false,执行关系表达式2,看结果是true还是false
                                        * 如果是true,执行语句体2
                                        * 如果是false,执行关系表达式3,看结果是true还是false
                                         ......
                                        * 如果都不满足,执行语句体n+1

                B:switch语句
                        格式:
                                switch(表达式) {
                                        case 值1:
                                                语句体1;
                                                break;
                                        case 值2:
                                                语句体2;
                                                break;
                                                …
                                        default:   
                                                语句体n+1;
                                                break;
                                }
                        执行流程
                                执行表达式,用其结果和case后的值进行匹配,如果一致,就执行对应的语句体.
                                如果都不满足,执行default后的语句体.
                        格式说明:
                                表达式:基本数据类型byte short char int
                                        JDK5:枚举
                                        JDK7:字符串
                                case:后面的值是用来和表达式的结果进行匹配
                                default:case后的值都不满足,执行default后的表达式
                                break:结束switch语句
                        注意事项:
                                a:case后只能跟常量,不能是变量,多个case后面的值不能相同
                                b:default必须放在最后吗?
                                        不是.建议放在最后面
                                c:break可以省略吗?
                                        可以.会出现case穿透
                                d:default可以省略吗?
                                        可以,但是不建议,因为default用来对错误信息进行说明
                                e:swtich语句结束条件
                                        *到语句的结尾
                                        *遇到break

        总结switch语句和if语句的各自使用场景
                switch建议判断固定值的时候用
                if建议判断区间或范围的时候用
        (3),循环结构(明天讲)




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