【JAVA-模块四 流程控制语句】

news2024/11/9 0:30:13

JAVA-模块四 流程控制语句

  • 一 选择分支语句:
    • if语句
      • if第一种格式:
      • if第二种格式 双分支:
      • if的第三种格式:多条件分支
    • switch多分支:
      • 注意:
      • if语句和swich语句如何选择:
  • 二 循环语句:
    • 2.1 for循环:
        • 格式:
        • for循环的注意事项:
        • 循环的嵌套:(for循环嵌套)
    • 2.2 while循环:
    • 2.3 do while循环语句:
      • 三种循环的区别:
      • 跳转控制语句break和continue:
      • 不确定循环次数的循环(无限循环):
      • random产生随机数:
    • 其他:
      • 两种打印语句的区别在于是否换行:

流程控制语句:

控制程序执行的顺序的语句

分类:顺序结构(按照代码的先后顺序依次执行),

​ 分支结构:if,switch

​ 循环结构:for,while,do while

一 选择分支语句:

if语句

if第一种格式:

在这里插入图片描述

成立就执行,不成立就不执行

if第二种格式 双分支:

在这里插入图片描述

if的第三种格式:多条件分支

在这里插入图片描述

最后一个else算是配体条件(前方条件都不成立时候执行这个),非必要但是加上逻辑更完整

if语句也可以进行嵌套!

switch多分支:

在这里插入图片描述

表达式(将要匹配的值 )

case,default(备胎,所有case语句都没有被匹配时执行)

default也是非必要的,但是配体条件能够逻辑更完整

注意:

1 case后的值不能重复

2 快捷键:

批量注释:

批量单行注释:选中后ctrl+/,再一次就是取消注释

批量多行注释:ctrl+shift+/,再一次也是取消

3 switch穿透现象(某被匹配地语句后没有break)

有时候能够利用switch地穿透作用,来优化代码(多个Case中有相同代码)

4代码穿透优化:一个语句可以有有多个接口数
在这里插入图片描述

public static void switchTest2(){
    Scanner sc=new Scanner(System.in);
    int week=sc.nextInt();
    switch (week){
        case 1,2,3,4,5:
            System.out.println("工作日");
            break;
        case 6,7:
            System.out.println("休息日");
        default:
            System.out.println("您地输入有误");
            break;
    }
}

使用箭头指向继续优化:省略break。

switch (week){
    case 1,2,3,4,5 -> System.out.println("工作日");
    case 6,7->System.out.println("休息日");
    default ->System.out.println("您地输入有误");
}

if语句和swich语句如何选择:

建议:

(1)if语句使用范围性判断

(2)swich适用于固定值地匹配

但是两者是相通地

二 循环语句:

循环语句的作用:代码重复执行

2.1 for循环:

格式:

for( 初始化语句;条件判断语句 ;条件控制语句){

循环体;

}

初始化语句只执行一次

循环中控制循环的变量,可以在循环体中,继续使用。

注意:

如果方法的调用有值产生,要使用return语句将这个值进行返回

生成方法返回值的快捷键:带有返回值的方法调用时候,在后面输入**.var**:会自动生成对应的接受值的类型和提供得变量名(可以更改)

for循环的注意事项:

1 快速设置循环结构的快捷键:想要循环n次: n.fori回车

2 for循环{ }中定义的变量(局部变量),在每轮循环结束后,都会从内存中释放(从内存中消失),因此在for循环外使用for循环内定义的变量不可取

3 for循环()中定义的变量i,在整个循环结束后,才会从内存中消失,因此在一个程序中多个循环()内可以使用进行定义for循环,不冲突

4 ()和{ }之间不能写分号

循环的嵌套:(for循环嵌套)

内循环相对于外部循环是循环体,只有循环体结束才会进行下一次循环

循环嵌套的使用场景

2.2 while循环:

格式:
在这里插入图片描述

执行流程:

1 初始化语句

2 执行判断语句,返回值为ture–>进入第三步,返回值为false,循环结束

3 执行循环语句

4 执行条件控制语句

5 回到步骤2

2.3 do while循环语句:

格式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZzW4tZE-1681628604875)(C:\Users\86137\Desktop\笔记\java笔记\模块四.assets\image-20230413083225051.png)]

注意初始化语句和条件控制语句,while()后面后分号;

执行流程:

1 初始化语句

2 执行循环体(至少执行一次循环体)

3 执行条件控制语句

4 判断条件看返回值的布尔类型

与while最大的区别:do while循环循环体至少执行一次

三种循环的区别:

for循环和while循环:先判断后执行

do while:先执行,后判断

for循环和while循环的区别:

for循环中的循环变量,在循环结束后,会从内存中自动消失,循环体外不能再被使用

while循环中用于控制循环的变量,在循环结束后,不会从内存中消失,循环结束后仍然可以使用(初始化在while循环外)

本质上是没有区别的,如果for循环循环控制变量如果在for循环外初始化,就跟while循环完全等价。

for循环语句一初始化挪到for循环之前,条件控制语句三挪到for循环体中后,和while循环完全一样(就关键字不一样)

因此for循环能够实现的,while循环也都能实现

在这里插入图片描述

跳转控制语句break和continue:

作用:对循环进行控制

break关键字:跳出所属循环(结束循环)/所属swich,也能结束switch

注意事项:只能在循环或者switch中使用

continue关键字:跳出本次循环,继续执行下次循环(跳过)

注意:只能在循环中使用

break,continue共同注意点:

break,continue下面不能写代码,属于无效代码(执行不到)

不确定循环次数的循环(无限循环):

(1) for(;;){}

(2) while(true)-----------更清晰

(3) do { }while(true)

无限循环可以通过break进行控制结束。

标号用于给循环起名字:形成一个falg,循环语句跳出时候,break后面可以指定跳出的位置。

random产生随机数:

Random精灵产生随机数

1 找符咒(imort java.untl.Random):IDEA会自动生成,可以忽略

2 召唤精灵:Random r=nem Random();

3 指挥精灵,产生随机数

int num=r.nextInt(n);----->随机产生从0到n的数字(不包含n)

如果想要产生1-n之间的随机数字(后面个加1:r.nextInt(n)+1)

其他:

两种打印语句的区别在于是否换行:

System.out.println( );----->打印数据后有换行效果

System.out.print( );-------->打印数据后不进行换行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚焦弹性问题,杭州铭师堂的 Serverless 之路

作者:王彬、朱磊、史明伟 得益于互联网的发展,知识的传播有了新的载体,使用在线学习平台的学生规模逐年增长,越来越多学生在线上获取和使用学习资源,其中教育科技企业是比较独特的存在,他们担当的不仅仅是…

Mars3D集成到ruoyi管理系统

尽管Mars3d的官网上提供了详尽的文档和API参考手册,但是在集成至ruoyi后天管理系统中时,还是碰到了不少问题: npm安装方式,若只安装mars3d,会提示找不到mars3d-cesium引用cesium相关库的时候,报404错误 这…

MongoDB基础学习总结及SpringBoot项目中的整合

前言 MongoDB 如今是最流行的 NoSQL 数据库之一,被广泛应用于各行各业中,很多创业公司数据库选型就直接使用了 MongoDB。MongoDB一经推出就受到了广大社区的热爱,可以说是对程序员最友好的一种数据库之一,下面主要是笔者在平常的…

大学刚毕业,用10000小时,走进字节跳动拿了offer

前言: 没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力幸运,但如果你不够幸运,那就只能拉高努力的占比。 2020年7月,我有幸成为了字节跳动的一名测试开发&#xff0c…

IO流、多线程

FileInputStream FileOutputStream 原理: //1、创建一个FileOutputStream对象,构造方法中写入数据的目的地 FileOutStream fos new FileOutputStream("C:\\a.txt"); //2、调用FileOutputStream对象中的方法write,把数据写入文件中…

【微信小程序】关于实现自定义图片代替checkbox样式的记录

前言 checkbox很好使,使用中往往需要改变它的样式。 记录一下用自定义的图片代替原有样式的过程。 关于把checkbox从:变成的过程 正文 思路 问题拆分: ①如何修改checkbox的样式 ②如何使用图片代替原有样式 如何修改checkbox的样式 修…

氢原子的电子轨道半径、能量、速度

在https://blog.csdn.net/qq_35379989/article/details/130065868?spm1001.2014.3001.5501中我们已经给出了波尔模型的三大假设:定态假设、跃迁假设以及角动量量子化。 一、氢原子的轨道半径 在跃迁假设中,通过设定波尔模型轨道能量:与电子…

各种商业版本的ChatGPT已经推出了,还有必要搞个人的Chat吗?

一、引言 虽然市面上已经存在许多商业版本的ChatGPT交互产品,但在我们的开发中,决定专注于打造一个更加个性化、更贴合个人需求的智能助手。我们相信,每个人都是独一无二的,他们的需求也是各不相同的。因此,个人ChatG…

浅析PHP代码审计中的SQL注入漏洞

浅析PHP代码审计中的SQL注入漏洞1.概述2.普通注入3.编码注入宽字节注入二次urldecode注入4.漏洞防范gpc/rutime魔术引号过滤函数和类addslashes函数mysql_[real_]escape_string函数intval等字符转换PDO prepare预编译1.概述 SQL注入的攻击方式有下面几种: 在权限较…

常用电阻的作用

1、限流: 根据公式:I U / R;可知,电压固定的情况下,电阻越大,电流越小 常用于保护器件, 例如:MCU的输入输出信号线串联电阻,以避免电流过大,损坏元器件 …

快鲸scrm助力眼科机构提效客户运营,提升转化率

眼科机构普遍面临着以下几方面的业务挑战 (1)存在信任危机,用户决策周期长 眼睛是心灵的窗户,患者在对眼部治疗机构的选择上格外慎重,因而决策周期较长,眼科机构需要通过品牌建设、 IP 的打造、优质的产品…

SDL(2)-加载图片

加载BMP 1.使用SDL_init初始化SDL库 2.使用SDL_CreateWindow创建一个窗口 3.使用SDL_GetWindowSurface获取创建窗口的surface 4.使用SDL_LoadBMP加载一张BMP图片 5.使用SDL_BlitSurface将加载的bmp surface拷贝到窗口的surface 6.使用SDL_UpdateWindowSurface更新到窗口 …

【严重】vm2 <3.9.15 沙箱逃逸漏洞(CVE-2023-29017)

漏洞描述 vm2 是一个沙箱,用于在 Node.js 环境中运行不受信任的代码。宿主对象(Host objects)是指由 Node.js 的宿主环境提供的对象,例如全局对象、文件系统或网络请求等。 vm2 3.9.15之前版本中,当处理异步错误时未正确处理 Error.prepare…

中国大学哪家强?Python爬取排名榜,太棒啦(31)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 欢迎和猫妹一起,趣味学Python。 今日主题 如何用Python,抓取并分析2023中国大学排名数据。 用到的Python库有requests、bs4。 requests库 reque…

PixiJS 渲染优化

最近做在线CAD可视化与编辑,对前端的可视化渲染技术进行了选型,对于二维CAD来说一般用canvas就够了,但是canvas每一次平移,缩放,更新数据都需要重新计算渲染所有的图形数据,数据一多就显得非常卡。如果使用…

TCP和UDP在实际工作中的应用

前言 日常在网上浏览一些文章时都会看到一些介绍TCP和UDP的文章,每次都是草草浏览,而没有深入的去研究,这几天在做日志采集工具的时候恰好遇到一个问题,就是采集端将采集到的内容发送到服务端时这里采用的通信协议应该如何考量&a…

SpringBoot源码分析

SpringBoot源码分析1.启动类分析2.SpringBoot的项目启动流程1.SpringApplication构造函数1)deduceFromClasspath()2)getSpringFactoriesInstances2.1)loadFactoryNames加载类名称2.2)createSpringFactoriesInstances创建实例2.run…

gradle环境搭建

目录 gradle是什么 gradle环境搭建 IDEA 配置 Gradle 创建 Gradle 项目 gradle是什么 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based …

Java基础总结(二)

文章目录一、ObjectObject中的成员方法(11个)toStringequalsclone二、Objects三、BigInteger和BigDecimaBigIntegerBigDecima四、正则表达式五、DateJDK7前时间相关类SimpleDateFormat类Calendar类JDK8新增时间相关类六、包装类一、Object 没有一个属性…

【密码算法 之十四】非对称算法,ECC椭圆曲线算法 之 ECDSA、ECDH、SM2、SM9等

文章目录1. ECC椭圆曲线1.1 曲线类型1.2 曲线标准1.3 表示方法1.4 曲线运算1.4.1 点加(Point Addition)1.4.2 点乘(Point Multiplication)1.4.3 倍点(Point Double)2. ECDSA2.1 私钥签名2.2 公钥验签3. ECD…