Java学习笔记(五)

目录

一、控制结构

1.1 顺序控制

1.2 分支控制

(一)单分支

(二)双分支

(三)多分支

(四)嵌套分支

(五)switch分支

1.3 循环控制

(一)for 循环控制

(二)while 循环控制

(三)do…while 循环控制

(四)多重循环控制

1.4 特殊(break、continue、return)

(一)break

(二)continue

(三)return

 二、排序

2.1 排序的分类

2.2 冒泡排序


一、控制结构

1.1 顺序控制

程序从上到下逐行执行,中间没有任何判断和跳转。

1.2 分支控制

(一)单分支

  • 基本语法
if(条件表达式){执行代码块;}
  • 当条件表达式为ture 时,就会执行 { } 的代码。如果为false,就不执行。
  • 特别说明,如果 { } 中只有一条语句,则可以不用 { } ,建议写上 { }

(二)双分支

  • 基本语法

if(条件表达式){执行代码块1;
}
else{执行代码块2;
}
  • 当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块,只
    有一条语句,则 { } 可以省略,否则,不能省略

(三)多分支

  • 基本语法

if (条件表达式1){执行代码块1;
}
else if (条件表达式2){执行代码块2;
}
……
else{执行代码块n;
}
  • 当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2……以此类推,如果所有的表达式都不成立则执行 else 的代码块,注意,只能有一个执行入口。

(四)嵌套分支

在一个分支结构中又完整的嵌套了另个完整的分支结构。里面的分支的结构称为内层分支外面的分支结构称为外层分支。规范:不要超过3层。(可读性不好)

  • 基本语法

if (){if (){if-else}else{if-else}
}
  • 当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2……以此类推,如果所有的表达式都不成立则执行 else 的

(五)switch分支

  •  基本语法

switch(表达式){ //表达式是一个具体的值case 常量1:语句块1;break;case 常量2:语句块2;break;...case 常量n:语句块n;break;default:default 语句块;break;
}
  1. switch 关键字,表示swtich分支。
  2. case 常量1:当表达式的值等于常量1,就执行 语句块1
  3. break:表示退出swtich
  4. 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2
  5. 如果一个都没有匹配上,执行default

注意事项

  1. 表达式数据类型,应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
  2. switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
  3. case子句中的值必须是常量,而不能是变量
  4. default子句是可选的,当没有匹配的case时,执行default
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾

1.3 循环控制

(一)for 循环控制

for (循环变量初始化;循环条件;循环变量迭代){循环操作;
}
  • for 关键字,表示循环控制
  • for有四要素:(1)循环变量初始化;(2)循环条件;(3)循环操作;(4)循环变量选代
  • 循环操作,这里可以有多条语句,也就是我们要循环执行的代码
  • 如果 循环操作(语句)只有一条语句,可以省略 4,但建议不要省略

(二)while 循环控制

循环变量初始化;
while(循环条件){循环体;循环变量迭代;
}
  • while也有四要素,只是位置不一样

(三)do…while 循环控制

循环变量初始化;
do{循环体;循环变量迭代;
}while(循环条件);

do...while是关键字,有四要素,只是位置不一样

(四)多重循环控制

  • 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for, while, do...while均可
    以作为外层循环和内层循环。[建议一般使用两层,最多不要超过3层。否则,代码的可读
    性很差]
  • 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为
    false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环
  • 设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次

1.4 特殊(break、continue、return)

(一)break

当有一个循环但次数不知道,break可以做到——当某个条件满足时,终止循环

  • break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
lable1:
for (int j=0;j<4;j++){
lable2:for (int i=0;i<10;i++){if (i==2){break lable1;}}
}
  • break 语句可以指定退出哪层
  • label 是标签
  • break 后指定到哪个label 就退出到哪里
  • 在实际的开发中,尽量不要使用标签
  • 如果没有指定 break,默认退出最近的循环体

(二)continue

  • continue语句用于结束本次循环,继续执行下一次循环
  • continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用的规则一样

(三)return

一般使用在方法,表示跳出所在的方法

 二、排序

排序是将多个数据,依指定的顺序进行排列的过程。


2.1 排序的分类

  1. 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法)。
  2. 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。

2.2 冒泡排序

通过对待排序序列从后往前,一次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前往后移,就像水底下的气泡一样逐渐向上冒。

具体代码如下:

import java.util.Arrays;public class BubbleSort {public static void main(String[] args) {int[] arr = { 25, 63, 24, 15, 96, 57, 15, 36, 45 };int temp = 0;for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}System.out.println(Arrays.toString(arr));}}
}

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

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

相关文章

雨云裸金属服务器

雨云服务器与裸金属服务器&#xff1a;云端与实体的完美交融 随着信息技术的迅猛发展&#xff0c;云服务已经成为企业和个人数据处理与存储的重要选择。其中&#xff0c;雨云服务器和裸金属服务器作为两种截然不同的服务形式&#xff0c;各自拥有独特的优势和应用场景。本文将深…

【MySQL探索之旅】MySQL数据库下载及安装教程

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

1.Electron初始与安装

这里写目录标题 一、前言二、下载三、简要总结 一、前言 原文以及该系列后续文章请参考&#xff1a;安装Electron 随着前端的不断强盛&#xff0c;现在的前端已经不再满足于网页开发了&#xff0c;而是在尝试能否使用前端的开发逻辑来开发PC端的桌面软件。 即用html、js、css…

浅谈测试用例设计

前言 最近干的最多的事情就是设计测试用例、评审测试用例了&#xff0c;于是我不禁又想到了一个经典的问题&#xff1a;如何设计出优秀的测试用例&#xff1f; 可能有些童鞋看到这个问题会有些不以为然&#xff0c;这有什么好想的&#xff1f;干个测试谁还不会设计测试用例&a…

CSS之水平垂直居中

如何实现一个div的水平垂直居中 <div class"content-wrapper"><div class"content">content</div></div>flex布局 .content-wrapper {width: 400px;height: 400px;background-color: lightskyblue;display: flex;justify-content:…

【C语言进阶】深度剖析数据在内存中的存储--上

1. C语言中的数据类型的简单介绍 注&#xff1a;C99标准里面&#xff0c;定义了bool类型变量。这时&#xff0c;只要引入头文件stdbool.h &#xff0c;就能在C语言里面正常使用bool类型。 1.1 在C语言中各类型所占内存空间的大小如下 char类型的数据类型大小为1字节即8比特位。…

如何在PDF 文件中删除页面?

查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤&#xff1a; PDF 是最难处理的文件格式之一。曾经有一段时间&#xff0c;除了阅读之外&#xff0c;无法用 PDF 做任何事情。但是今天&#xff0c;有许多应用程序和工具可以让您用它们做…

用示波器测量这些参数你真的会吗?

大家好&#xff0c;我是砖一。 示波器是电子工程师最常见的仪器&#xff0c;很多人也把示波器比作工程师的“眼睛”&#xff0c;这也足以说明示波器对工程师有多重要。 信号是如何显示到示波器屏幕上的呢&#xff1f;在示波器上&#xff0c;信号传输经过探头内部的一系列电阻器…

通用防重幂等如何设计?

防重与幂等的区别 防重与幂等是在 Web 应用程序和分布式系统中重要而又非常常见的问题。 防重 防重是指在多次提交同样的请求过程中&#xff0c;系统会检测和消除重复的数据&#xff0c;确保相同的数据只会被处理一次&#xff0c;从而避免不必要的重复操作或产生错误的结果。…

MYSQL学习笔记:MYSQL存储引擎

MYSQL学习笔记&#xff1a;MYSQL存储引擎 MYSQL是插件式的存储引擎 存储引擎影响数据的存储方式 存储引擎是用来干什么的&#xff0c;innodb和myisam的主要区别–数据存储方式----索引 mysql> show engines; ----------------------------------------------------------…

作业2.13

1、选择题 1.1、若有定义语句&#xff1a;int a[3][6]; &#xff0c;按在内存中的存放顺序&#xff0c;a 数组的第10个元素是 D A&#xff09;a[0][4] B) a[1][3] C)a[0][3] D)a[1][4] 1.2、有数组 int a[5] {10&#xff0c;20&#xff0c;30&#xff0c;40&#xff0c;50},…

Github 2024-02-07 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-07统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目2TypeScript项目2Python项目2Ruby项目1HTML项目1NASL项目1Go项目1C项目1Svelte项目1C项目1 React Nat…

自定义类型之枚举类型(enum)和联合体类型(union)

目录 枚举类型&#xff08;enum&#xff09; 什么是枚举类型&#xff1f; 枚举类型的使用 枚举类型的优势 枚举类型的应用场景 总结 联合体类型&#xff08;union&#xff09; 什么是联合体&#xff1f; 联合体的应用场景 联合体的注意事项 总结 枚举类型&#xff08…

C++ //练习 6.5 编写一个函数输出其实参的绝对值。

C Primer&#xff08;第5版&#xff09; 练习 6.5 练习 6.5 编写一个函数输出其实参的绝对值。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*************************************************************************&…

【Ubuntu】在.bashrc文件中误设置环境变量补救方法

这里是vim也不在PATH中了&#xff0c;因为 解决方法就是在输入vim之后提示的vim路径下用vim打开该文件&#xff0c;然后改回来

(三十六)大数据实战——ClickHouse数据库的部署安装实现

前言 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库 DBMS &#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08; OLAP &#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。列式存储&#xff1a;数据按列进行存储&a…

局部特征描述子

局部特征描述子是用于表示图像、点云或其他数据中局部区域特征的一种方法。它们通常用于计算机视觉、三维重建和模式识别等领域。局部特征描述子的主要目标是捕获图像或数据中的局部结构和特征&#xff0c;这些特征在旋转、尺度和光照变化等方面具有不变性或者部分不变性。 一…

结合Next项目实际认识webpack.splitChunks

本文的目的在于简单的介绍webpack的优化功能配置&#xff1a;splitChunks。 webpack5出于“开箱即用”的目的&#xff0c;将大部分曾经要使用插件的功能集成到了config配置中&#xff0c;因此用户只需要了解如何配置&#xff0c;即可达到优化目的&#xff0c;其中最常使用接触的…

Backtrader 文档学习- Observers - Reference

Backtrader 文档学习- Observers - Reference 1.Benchmark class backtrader.observers.Benchmark() 观察器存储策略的回报和参考资产的回报&#xff0c;参考资产是传递给系统的数据之一。 参数&#xff1a; timeframe (default: None) &#xff0c;如果None&#xff0c;则将…

【ES】--ES集成自定义分词库

目录 一、相关安装1、(window单机)elasticsearch安装2、安装Elasticvue插件3、ik分词器插件4、ES集成自定义词库 一、相关安装 1、(window单机)elasticsearch安装 Win10下下载ES组件&#xff0c;安装部署如下&#xff1a;JDK1.8、elasticsearch-7.3.2-windows-x86_64。 Elast…