当前位置: 首页 > news >正文

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的结尾

http://www.lryc.cn/news/420332.html

相关文章:

  • [Android] [解决]Bottom Navigation Views Activity工程带来的fragment底部遮盖的问题
  • Armv8/Armv9架构中的原子性
  • 读零信任网络:在不可信网络中构建安全系统15协议和过滤
  • C语言学习笔记 Day11(指针--中2)
  • Golang 并发编程
  • 【数据结构详解】——选择排序(动图详解)
  • 杂项命令(笔记)
  • 代码随想录算法训练营Day38||完全背包问题、leetcode 518. 零钱兑换 II 、 377. 组合总和 Ⅳ 、70. 爬楼梯 (进阶)
  • 超越链端:Web3的无边界技术革命
  • 127. Go反射基本原理
  • 提高PDF电子书的分辨率
  • Spring Cloud全解析:注册中心之zookeeper注册中心
  • 解决戴尔台式电脑休眠后无法唤醒问题
  • MySQL运维-分库分表
  • AGX orin硬件设计
  • AI大模型开发——2.深度学习基础(1)
  • go语言day22 gin-vue-admin全栈项目的依赖安装
  • PHP之docker学习笔记
  • 基于树莓派4B与STM32的UART串口通信实验(代码开源)
  • 【云服务器系列】基于华为云OBS实现Picgo和Typora的完美融合
  • IIC协议
  • 如何在linux系统上部署nginx
  • 香港网站服务器抵御恶意攻击的一些措施
  • 实战:docker部署filesite.io完美解决家庭相册需求-2024.8.10(测试成功)
  • 美团到店面经
  • 【CSS入门】第五课 - font字体
  • STM32-门电路-储存器-寄存器-STM32f1-MCU-GPIO-总线-keil5-点led-寄存器编程
  • 【动态规划算法题记录】343. 整数拆分 | 96.不同的二叉搜索树
  • 网页上预览Excel文件
  • Unity射击游戏开发教程:(31)制造一定追踪行为的敌人