A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jkdong 高级黑马   /  2015-6-26 15:55  /  1110 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

day02回顾
    常量
    进制
    变量:必须有初始化值
    数据类型转换:boolean不能与其他转换,隐式转换,强制转换(明确数据在小类型的范围内)
    运算符
        算术运算符
            int i = 10;
            i++;
            System.out.println(i++);//11,先用后加
        赋值运算符
        
day03课堂笔记
    逻辑运算符
        用于连接布尔表达式
            表达式:用运算符连接的式子
.                由变量常量组成
                哪种运算符连接的就叫哪种表达式
    & 逻辑与 并且  有假则假全真则真(左右都运算)
    | 逻辑或 或者  有真则真全假则假(左右都运算)
    ^ 逻辑异或      相同为假不同为真
    ! 逻辑非 不是 针对一个表达式的操作 真变假 假变真
            
    从结果看,&&和&,||和|的结果一样
    && 短路与  本身也是逻辑与  如果前面false后面不再执行
    || 短路或  本身也是逻辑或  如果前面true后面不再执行
   
    开发常用:
        &&,||
        
   
   
    位运算
        对二进制位补码的运算
        <<左移 二进制数据向左移动,高位丢弃,右边空出的位补0(负的可能变成正的)相当于*2^n
        >>右移 二进制数据向右移动,低位丢弃,高位是0补0,是1补1
        >>>无符号右移 二进制数据向右移动,无论最高位是1还是0,左边高位都补0
        左移右移n位其实就是将数据增大或者缩小2^n
        
        &按位与
        |按位或
        ^按位异或  特点:一个数据被同一数据异或两次数据不变----实现简单的加密
        ~按位取反:所有的0变1,1变0,注意与反码操作的区别
        注意:计算的时候,一定要先得到二进制数,然后得到反码补码,然后参与运算
            得到的额结果也是补码的形式,再反推出原码,计算其十进制
            
        面试题:
            int a = 10;
            int b = 20;
            
            //方案1:采用临时变量(开发用)
            //int temp = a;
            //a = b;
            //b = temp;
            //System.out.println(a+"****"+b);

            //方案2:使用位^运算(面试使用)
            //特点:一个数据被同一数据异或两次数据不变
            //System.out.println(a ^ b);//30
            //System.out.println(a ^ b ^ b);//10,a的值
            //System.out.println(a ^ b ^ a);//20,b的值

            a = a ^ b;
            b = a ^ b;//b = a ^ b ^ b = a
            a = a ^ b;//此时b获得a的值,a = a ^ b ^ a
            
            注意:
                测试程序的时候,,分段进行,不要让其他代码造成我想要的看到的结果的混乱
                **变量是会变的!!
   
    条件运算符(三元运算符)
        格式:
            (条件表达式)?表达式1:表达式2
            条件表达式为true运行表达式1,为false则表达式2
        注意:条件表达式只能是true或者false
            复杂的表达式要加括号
   
    if语句
        if格式1
            //格式化良好
            if (条件表达式){//执行结果肯定是boolean
                //条件为true执行判断体代码
            }
            //目前必须把{}加上
            
            
            if (条件表达式);
            {//执行结果肯定是boolean
                //条件为true执行判断体代码
            }//此时,if与下边的{}是独立的两部分了
            
            局部代码块:它是方法里的{}这里面的代码就是局部代码块
                作用就是控制变量的生命周期,使变量尽早从内存中消失
                main(){
                    int x = 10;
                    int x = 20;
                    .....
                    {
                        int z = 30;
                    }
                }
               
               
            全局变量:
                定义在方法外面,类的里面
                全局变量如果没有显示的初始化值,会有一个默认的,
                int类型是0,引用类型的是null,double类型是0.0
            局部变量
                定义方法里面的变量
                使用之前局部变量必须声明并且初始化
            
            练习:
                考试成绩分等级:
                    90-100    A等。
                    80-89    B等。
                    70-79    C等。
                    60-69    D等。
                    60以下    E等。
                    
        if格式2:效果等价于三元运算
            if(条件表达式)
            {
                语句体1
            }
            else
            {
                语句体2
            }
            //if判断条件为真,走if下的{}
            //否则走else
            
        if格式3:
            if(条件表达式)
            {
                语句体1
            }
            else if(条件表达式)
            {
                语句体2
            }
            .....
            else
            {
                语句体3//前面的都不走,就运行改句
            }

        注意:
            单独的else后不能跟条件表达式
            最后的else可以省略,但是建议写上,除非明确不需要
            条件一旦满足其中之一的条件,if语句即终止
            在第三种格式中,不要让多个表达式同时为真(注意业务逻辑中的逻辑边界问题)

        案例:定义x y
            如果x>3,y=2*x
            如果0<x<=3,y=5
            如果x<0,y=10-2*x
        
        
        键盘录入:
            首先在类的上面导包:
            
            import java.util.Scanner;
            
            class Demo
            {
                main()
                {
                    //创建对象
                    Scanner s = new Scanner(System.in);
                    System.out.println("请输入一个数据");
                    //键盘录入
                    int i = s.nextInt();//获取键盘录入的下一个int值,如果不是int报异常
                    
                    
                }
            }
            
        与三元运算符(条件运算符)
            完全用if...else的格式取代,条件运算符某些情况下可以简化if-else(简单赋值语句时才可以)
   
    switch语句
        switchi格式:
            switch(表达式)
            {
                case 取值1:
                    执行语句;
                    break;
                case 取值2:
                    执行语句;
                    break;
                ...

                default
                    执行语句

            }

        解释:
            break不建议省略
            switch:使用的是switch语句
                表达式可以取值:byte short int char
                jdk5+可以枚举
                jdk7+可以字符串
            case 取值1:选项的值
            break Switch遇到它就结束了
            default  当所有取值都不匹配时运行该句

        执行流程,
            从上往下用表达式的值与case值进行匹配,若匹配,则执行该case下的语句
            如果没有匹配就执行default
            
        switch注意事项
            default可以省略,但是一般不省略,除非非常明确,
                相当于if的else,它控制者所有非正常情况
            break可以省略吗?
                放在最后的default的break是可以省略的
                放在case中的break可以省略,可能结果有问题,所以一般不省略
            default可以放在最前,但是一般放在最后(case与default没有顺序)
            Switch语句什么时候结束:
                遇到break或者执行到Switch语句的末尾
               
        建议:
            不要省略default,并放在最后
            每个case执行语句以及default执行语句都要跟上break
            
            考试题目,故意不把default放在最后,故意省略break
            特点:Switch语句执行结束条件:遇到break或者执行到语句末尾
            
                int x = 4;
                switch (x)
                {
                default:
                    System.out.print("d");1
                case 1:
                    System.out.print("a");2
                case 2:
                    System.out.print("b");3
                case 3:
                    System.out.print("c");4
                }
               
                执行顺序:
                    2-3-4此时没有匹配选项,不输出
                    运行1(d),1没有break,继续向下执行
                    2-3-4(a b c )                     
day03重点
    逻辑运算符
        &&   ||
    位运算
        面试题:快速计算2*8
            交换变量(定义第三方变量,位异或)
    条件运算符:三元运算
        简单的if-else语句
    if语句
        三种格式以及注意事项
    练习键盘录入
        考试成绩分等级

  

评分

参与人数 2技术分 +1 黑马币 +40 收起 理由
小鲁哥哥 + 40 很给力!
温暖的小白 + 1

查看全部评分

8 个回复

倒序浏览
终结丶天涯 来自手机 中级黑马 2015-6-26 19:45:16
沙发
加油加油^ω^
回复 使用道具 举报
支持楼主,一起努力吧
回复 使用道具 举报
加油加油!
回复 使用道具 举报
加油加油啊!好习惯
回复 使用道具 举报
加油,兵哥
回复 使用道具 举报
拐子 中级黑马 2015-6-29 08:24:30
7#
每天学这么多 ,赶得上么
回复 使用道具 举报
学习的速度是非常的快递额 啊  
回复 使用道具 举报
06 18  一起加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马