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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 牧歌 中级黑马   /  2014-12-16 23:35  /  1296 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是今天的笔记。
位运算是直接对二进制进行运算。

&        按位与       
|        按位或       
^        按位异或       
~        按位取反       
<<        左移            左边的高位舍弃,右边空出的部分补齐0。
>>        右移        如果最高位是0,左边被移空的位就填入0;如最高位是1,左边被移空的就填入1.
>>>        无符号右移        无论最高位是1还是0,左边被移空的高位都填入0.

向左移动或者向右移动,其实就是把数据 增大或者缩小2的指定次幂。


面试题1:
        请用最高的效率写出2*8这个式子。
面试题2:
        请把两个数据交换。
        int a = 10;
       

class OperatorDemo4
{
        public static void main(String[] args)
        {
                int a = 10;
                int b = 20;
//方案1:采用临时变量(开发用)
                int temp = a;
                a = b;
                b = temp;
                System.out.println(a+"****"+b);
//方案2:使用位^运算符。
                //特点:一个数据对同一个数据位^运算两次,数据不变。
                a = a ^ b;
                b = a ^ b; // a ^ b ^ b = a;
                a = a ^ b; //a ^ b ^ a = b
                System.out.println(a+"****"+b);
        }
}




条件运算符:(三元运算符),必须返回一个数值。
        (条件表达式)?表达式1:表达式2;
注意:条件表达式说明这里将来只能是结果为true或者false的表达式。
执行顺序:
        如果条件表达式为true,就把表达式1作为结果。
        如果条件表达式为false,就把表达式2作为结果。




流程控制语句:
        A:顺序结构 代码按照顺序从上往下执行。
        B:选择结构 根据以下选择或者判断做出不同的执行。
                a:选择结构
                b:判断结构
        C:循环结构 把某些事情做很多次。

        选择结构: if语句体现

        格式1:
                if(条件表达式)
                {
                        语句体;
                }

                执行顺序:
                        根据条件表达式的返回值是true还是false决定程序的流程。
                        如果是false,就什么都不做。
               
                注意:
                        A:条件表达式:无论条件表达式是简单还是复杂,结果必须为boolean类型。
                        B:if语句后面可以不写{},但是,如果这样的话,它就只能控制后面的一条语句。
                        如果想控制多条, 就必须加{}。
                        推荐:无论是控制一条还是多条,请都加上{}。
                        C:在if语句的{}前面不要写分号,否则,会对程序的结果有影响。
                        一般来说:出现{}的时候,就不会有分号,有分号的时候就不会有{}。

               
                作用域:
                        定义的变量的作用域,在它所属的{}内有效。
       
       
        if语句的第二种格式:
                if(条件表达式)
                {
                        语句体1;
                }
                else//否则的意思
                {
                        语句体2;
                }
       
       
        if语句的第三种格式:
                if(条件表达式1)
                {
       
                }
                else if(条件表达式2)
                {
       
                }
                else if(条件表达式3)
                {
       
                }
                ....
                else
                {
       
                }
       
       
                注意:
                        A:else后面不能直接跟条件表达式
                        B:最后的一个else可以不写,但是建议加上。除非你明确不需要
                        C:if语句的第三种格式,一旦某个地方满足,if语句就不往下执行了。
       
       
                案例:
       
                        定义x,y两个变量。
                        如果x大于3,y=2*x
                        如果x大于0小于等于3,y=5
                        如果x小于等于0,y=10-2*x
       





我们如果想数据的效果好一些,最好从键盘录入数据。
而键盘录入的实现方案,常用的有三种方式:
A:main后面的String[] args接收参数。
B:


使用Scanner的步骤:
A:导包
        import java.util.Scanner;
B:创建对象
        Scanner sc = new Scanner(System.in);

        System.in:是标准输入流。对应着键盘录入。

C:调用方法获取
        int i = sc.nextInt();


A:if语句的嵌套:
        if语句里面的语句体本身又是一个if语句。
B:if语句的第二种情况和条件运算符的关系?
        没有关系,一个是语句,一个是运算符。
        但是if语句在某些情况下,可以用条件运算符替换,更简洁。
        条件运算符是运算符。
        是运算符应该有结果。


switch的语句格式:
        switch(表达式)
        {
                case 取值1:
                        执行语句;
                        break;
                case 取值2:
                        执行语句;
                        break;
                ...
                        default:
                        执行语句;
                break;
        }

        解释:
                switch:知道这里使用的是switch语句
                        表达式: byte, short, int, char
                        JDK5以后,可以是枚举。
                        JDK7以后,可以是String类型。
                case 取值1:
                        case表示这是一个选项,取值1就是这个选项的值。
                 break:
                        switch语句遇到break就结束了。
                defaul:
                        就相当于if语句的else。当所有的取值都不匹配时,就执行default.

        执行流程:
                从上往下,用表达式的值去和case后面的值进行匹配,如果有匹配的,就去执行该case所包含的语句。
                如果没有匹配的。就一直执行到default语句。

        注意事项:
                A:default可以省略吗?可以。
                        但是一般不省略,它相当于if的else,可以控制所有的非正常情况。
                        假如你非常明确,那就省略。
                B:break可以省略吗?
                        放在是后面default的break是可以省略的。
                        放在case中的break是可以省略的,但是结果可能会有问题。
                        所以,一般不省略。
                C:default可以不放在最后面吗?
                        可以,但是一般都放在最后面。
                D:switch语句什么时候结束?
                        遇到break。或者执行到switch语句的末尾。
               
                当switch找到了一个对应case或者default时,此时整个程序变成了顺序结构(不进行判断,有break打断,没break继续输出对应代码块)

5 个回复

倒序浏览
论坛发帖发回复能复制粘贴吗?
回复 使用道具 举报
楼主是哪期基础班啊,我也要入学一月二号的基础班了
回复 使用道具 举报
敲代码换大汽车 发表于 2014-12-17 11:43
楼主是哪期基础班啊,我也要入学一月二号的基础班了

1212的。。
回复 使用道具 举报
dwy_hm 发表于 2014-12-17 10:29
论坛发帖发回复能复制粘贴吗?

这个不懂。嘿嘿
回复 使用道具 举报
受教了,有复习了一遍
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马