黑马程序员技术交流社区

标题: day03 [打印本页]

作者: HEY、baby    时间: 2015-9-3 19:59
标题: day03
逻辑运算符:
        &:逻辑与 (有false则整个表达式的结果为false,只有当各个表达式的结果都为true的时候,整体才为true)
                漂亮并且身材好
        |:逻辑或  (有true则整体表达式的结果为true)
                漂亮或者身材好
        !:逻辑非 (以前是false,现在就是true。以前是true,现在就是false)
                只要是女的就行   !男
        ^:逻辑异或(相同为false,不同为true)
                false^false   //结果是false
                true^true    //结果是false
                最后发现你也找不到,就找了个男的。

        &&和&的区别是什么?
                &&:短路与。当左边的表达式的结果为false的时候,右边的表达式不执行。
                &:逻辑与。无论左边表达式的结果是false还是true,右边的表达式都会执行。
                但是,不管用&&或者&,最后计算出来的整体表达式的结果都是一样的。
                        //++x && ++y
        ||和|的区别:
                ||:短路或,当左边表达式的结果是true的时候,右边不执行。
                |:逻辑或。无论左边的结果是true还是false,右边都执行。
                但是,不管用||或者|,最后计算出来的整体表达式的结果都是一样的。
        开发中:
                我们常用的是: &&,||,!

位运算符:(功能跟逻辑运算符类似,把0看做false,1看做是true)
        位运算符:计算的数据的补码形式。
        &:按位与        有0则0.
        |:按位或        有1则1.    6&2
        ^:按位异或        相同为0,不同为1
                一个数据被同一个数据位移或两次,结果不变。(10^5^5)
        ~:按位取反        1变0,0变1


        <<:左移  相当于该数据乘以2的几次幂   右边空缺位用0补齐。
        >>:        右移  相当于该数据乘以2的几次幂          最高位是0,空缺位用0补齐。如果最高位是1,空缺位用1补齐。
        >>>:无符号右移        不管最高位是0还是1,空缺位都用0补齐。

三元运算符:
        格式: 关系表达式?表达式1:表达式2;
        执行顺序:
                首先先判断关系表达式的值,如果是true,执行表达式1,如果是false,执行表达式2.
        注意:
                1、关系表达式的结果只能是boolean。
                2、表达式1和表达式2只能运行一个。

        做两个练习题:
                1、比较两个整数是否相同。
                2、求三个整数中的最大值。
                        int a = 10;
                        int b = 20;
                        int c = 30;
                        int max = a>b ? (a>c?a:c) : (b>c?b:c) ;


                自行测试然后在控制台输出结果。


Scanner的使用步骤是什么:
        A:导包。
                在类的上边写上:  import java.util.Scanner;
        B:创建键盘录入对象。 Scanner sc = new Scanner(System.in);
        C:通过对象调用方法。 int x = sc.nextInt();



流程控制语句:
        顺序结构:代码是从上往下,一次来执行的。
        选择结构:
                if语句:
                        格式1:
                                if(关系表达式){
                                        语句体;
                                }
                                执行流程:
                                        先执行关系表达式,看它的结果是true还是false,
                                        如果是true,就执行语句体,
                                        如果是false,不执行语句体。
                        格式2:
                                if(关系表达式){
                                        语句体1;
                                }else {
                                        语句体2;
                                }
                                执行流程:
                                        先执行关系表达式,看它的结果是true还是false,
                                        如果是true,执行语句体1;
                                        如果是false,执行语句体2;

                                        思考:if的第二种格式和三元表达式有什么区别?
                                                1、能用三元运算符解决的问题,都可以用if来搞定,反之不行。
                                                2、既然是运算符,就肯定要有一个结果。
                                                推荐:优先使用三元运算符,因为它的格式比较简单。
                                               
                        格式3:
                                if(关系表达式1){
                                        语句体1;
                                }else if(关系表达式2) {
                                        语句体2;
                                }else if (关系表达式3){
                                        语句体3;
                                }else{
                                        语句体4;
                                }

                                执行流程:
                                        先执行关系表达式1,看它的结果是true还是false,
                                        如果是true,执行语句体1,if语句结束。
                                        如果是false,继续判断关系表达式2.
                                        。。。。。。。
                                        最后都不满足,执行else中的语句体4;

                        注意事项:
                                1、关系表达式的结果必须是boolean类型。
                                2、if语句后边的大括号可以省略,省略的话只能控制紧跟在它后边的那一行有效代码。
                                        推荐:大括号不要省略。
                                3、一般来说,有大括号的地方一般是没有分号。
                swtich-case语句:
                        格式:
                                switch(表达式){
                                        case 值1:
                                                语句体1;
                                                break;
                                        case 值2:
                                                语句体2;
                                                break;
                                        case 值3:
                                                语句体3;
                                                break;
                                        ..........
                                        default:
                                                语句体4;
                                                break;
                               
                                }
                                //给定一个值(整数),输出对应星期几
                                        示例:用户输入1,打印星期一
                                表达式:
                                        基本:byte,short,char,int
                                        引用:JDK1.5以后支持枚举,JDK1.7以后支持String

                                使用switch的时候有哪些注意事项:
                                        1、case后边必须是常量。而且多个case时,值不能重复。
                                        2、default可以省略吗?
                                                可以,但是不建议省略,因为它存的所有非正常情况,相当于是else。
                                        3、default可以不放在最后吗?
                                                可以。
                                        4、break可以省略吗?
                                                最后一个break可以省略,程序没问题。
                                                其他break省略的话,可能会发生case穿透。
                                        5、swtich-case语句什么时候结束?
                                                A:遇到break。
                                                B:执行到switch的右大括号。
                                什么时候使用if,什么时候使用switch?
                                        看需求。如果解决的是固定值的问题,用swtich,如果是区间的问题,用if。
                                        能用switch解决的都可以使用if来解决,反过来不一定。
                                        if(month==3||month==4||month==5)
        循环结构:





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