03、流程控制语句

01、位运算符

        一、位运算符:是针对二进制数据(补码)的运算。(0看成false,1看成true)

                &:按位与——求出两个数字对应的二进制,有0则0

                | :按位或——求出两个数字对应的二进制,有1则1

                ^ :按位异或 ——求出两个数字对应的二进制,相同则0,不同则1。

                ~:按位取反——按位取反的意思就是,针对当前的这个二进制数据,所有的0变1,1变0,其实就相当与把当前的变量的值加1,然后取反。

02、运算符2

        1. <<:左移——左边的高位舍弃,右边空出的部分用0补齐

        2. >>:右移——如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1

        3. >>>:无符号右移——无论最高为是1还是0,左边被移空的高位都填入0

        总结:向左(增大)移动或者向右(缩小)移动,就是把数据增大或者缩小2的指定次幂。

03、两个面试题

        A:请用最高的效率写出2乘以8这个式子

                2*8(错误,不够高效)   --->   2<<3

        B:请把两个数据交换   举例:int a=10;int b=20;交换两个变量的值。

                方案1:采用临时变量

                方案2:使用位^运算符

                        特点:一个数据对同一个数据位^运算两次,数据不变

                        a=a^ b;

                        b=a^ b;

                        a=a^ b;

                开发使用第三方变量的形式,面试使用位^运算符。

04、条件运算符

        也就是三元运算符,三元表达式。

        格式:(条件表达式)?表达式一:表达式二

        注意:条件表达式说明这里将来只能是结果为true或者false的表达式

        执行顺序:如果条件表达式为true,就把表达式1作为结果;
                        如果条件表达式为false,就把表达式2作为结果。

        扩展:三元表达式的嵌套。

                例子:用三元表达式求3个数的最大值。

                        (a>b) ?(a>c?a:c):(b>c?b:c);

05、if语句的第一种格式

        流程控制语句:

                A:顺序结构:代码按照顺序从上往下执行

                B:选择结构:代码根据以下选择或者判断做出不同的执行

                C:循环结构:把某些事情做很多次


        if语句的第一种格式:

                if(条件表达式){

                        语句体;

                }

        执行顺序:根据条件表达式的返回值是true还是false决定程序的流程

                如果是true,就执行语句体,如果是false,就什么都不做


        注意:

                A:无论条件表达式是简单还是复杂,结果都必须是boolean类型;

                B:if语句后面可以不写0,如果这样的话,他就只能控制后面的一条语句如果想控制多条,就必须加0,推荐:无论是控制一条还是多条,请都加上;

                C:在if语句的0前面不要写分号,否则,会对程序的结果有影响,-般来说,出现0的时候,就不会有分号,有分号的时候,就不会有()号。

        作用域:定义的变量的作用域,在他所属的那对之内有效。

06、if语句的第二种和第三种格式

        一、if语句的第二种格式:

                if(条件表达式){

                        语句体1;

                }else{  // 否则的意思

                        语句体2;

                }

        二、if语句的第三种格式:

                

                if(条件表达式){

                        语句体1;

                }else if(条件表达式){

                        语句体2;

                }

                ………………(此处可以写多个else if0))

                else{

                        语句体3;

                }


        注意:

                A:else后面是不能直接跟条件表达式;

                B:最后一个else可以不写,但是,一般建议加上。除非,你明确不需要;

                C:if语句的第三种格式,一旦某个地方满足if语句就不往下执行了。

07、if语句的案例测试

        考试成绩分等级90-100---A等;

        80-89 ---B等;

        70-79 --- C等;

        60-69--- D等;

        60以下 ---E等;

        根据给定成绩,输出对应的等级(代码略)


        注意:

                A:做程序,不仅仅要考虑正常情况,还得考虑非正常情况;

                B:对程序进行测试,要考虑的数据

                        a:正确数据
                        b:错误数据
                        c:边界数据

08、if语句的案例测试通过Scanner改进

        我们如果想数据的效果好一些,最好从键盘录入数据而键盘录入的实现方案,常用有三种方式:

                A:main后边的Stringlargs接受参数;

                B:BufferedReader I0流里边;

                C:ScannerJDK5以后键盘录入数据的新方式。


        使用Scanner的步骤:

                A:导包

                        import java.util.Scanner;

                B:创建对象

                        Scanner sc = new Scanner(System.in);

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

                        这个暂时先了解,后边到IO流会重点讲。


                用Scanner来做上边那道评判成绩评定的题。

09、if语句的嵌套和与条件运算符的替换

        A:if语句的嵌套:

                if语句里面的语句体本身又是一个if语句。

                事例:求三个数的最大值。

        B:if语句的第二种格式和条件运算符的关系

                没有关系,一个是语句,一个是运算符。
                但是,if语句在某些情况下,可以用条件运算符替换,更简洁。

        C:例如:System.out.printin("输出一句话”);

                这种情况就不可以使用条件运算符替换,因为条件运算符是运算符,

                是运算符就应该有结果。

10、switch语句的格式使用

        格式:

                switch(表达式){

                        case 取值1:

                                执行语句;

                                break;

                        case 取值2:

                                执行语句;

                                break;

                        ……………………

                        default:

                                执行语句;

                                break;

                        }


        解释:

                1.switch:知道这里使用的是switch

                2.表达式:byte,short,int,charJDK5以后,可以是枚举。JDK7以后,可以是String类型。

                3.执行流程:

                        从上往下,用表达式的值去和case后面的值进行匹配如果有匹配的,就去执行该case所包含的语句,如果没有匹配的,就会去执行default中的内容。

11、switch语句的注意事项

        A:default可以省略吗?

                可以。但是,一般不省略,它相当于if的else语句,可以控制所有的非正常情况。假如你非常明确可以省略,那就省略。

        B:break可以省略吗?

                放在最后面的default的break是可以省略的,
                放在case语句中的break是可以省略的,但是可能结果有问题。所以,一般不省略。

        C:default可以不放在最后边吗?

                可以,但是一般都放在最后面,

        D:switch语句什么时候结束?

                遇到break或者执行到switch的结尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值