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;
}
- switch 关键字,表示swtich分支。
- case 常量1:当表达式的值等于常量1,就执行 语句块1
- break:表示退出swtich
- 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2
- 如果一个都没有匹配上,执行default
注意事项
- 表达式数据类型,应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
- switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
- case子句中的值必须是常量,而不能是变量
- default子句是可选的,当没有匹配的case时,执行default
- 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 排序的分类
- 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法)。
- 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。
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));}}
}
相关文章:
Java学习笔记(五)
目录 一、控制结构 1.1 顺序控制 1.2 分支控制 (一)单分支 (二)双分支 (三)多分支 (四)嵌套分支 (五)switch分支 1.3 循环控制 (一&…...
4.【Linux】进程控制(进程终止||进程等待||程序替换)
一.进程创建fork 见上篇文章 二.进程的终止 1.进程退出场景 1.代码运行完毕,结果正确,通过main函数退出码返回一般为0。 2.代码运行完毕,结果不正确,通过不同的退出码标识不同的错误原因。 3.代码异常终止(信号&am…...
微服务设计:Spring Cloud 链路追踪概述
Spring Cloud 链路追踪是指在分布式系统中追踪请求路径的技术。它可以帮助开发者了解请求在各个微服务之间是如何流转的,以及每个微服务处理请求所花费的时间。链路追踪可以用于解决以下问题: 性能分析: 识别性能瓶颈,优化微服务性能。故障排…...
【MySQL/Redis】如何实现缓存一致
目录 不实用的方案 1. 先写 MySQL , 再写 Redis 2. 先写 Redis , 再写MySQL 3. 先删 Redis,再写 MySQL 实用的方案 1. 先删 Redis,再写 MySQL, 再删 Redis 2. 先写 MySQL , 再删 Redis 3. 先写MySQL,通过BinLog࿰…...
Socket.D 开源输传协议 v2.4.0 发布
Socket.D 协议 是基于"事件"和"语义消息""流"的网络应用层传输协议。有用户说,“Socket.D 之于 Socket,尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 pyton 已开发完…...
单片机学习笔记---AT24C02数据存储
目录 AT24C02数据存储 准备工作 代码讲解 I2C.c 模拟起始位置的时序 模拟发送一个字节的时序 模拟接收应答的时序 模拟接收一个字节的时序 模拟发送应答的时序 模拟结束位置的时序 I2C.h AT24C02.c 字节写:在WORD ADDRESS(字地址ÿ…...
首次安装Mysql数据库
1、在mysql官网下载自己需要的版本 2、选择安装类型 3、 检查一下需求版本 4、 这里可能会弹出如下信息,先不用管这一步,点击Yes继续即可 5、 安装需要的环境,点击执行就可以,此过程会比较慢 如下就是全面安装完成了,点击next即可...
2024 前端面试题(GPT回答 + 示例代码 + 解释)No.1 - No.20
本文题目来源于全网收集,答案来源于 ChatGPT 和 博主(的小部分……) 格式:题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 目录 No.1 - No.20 本文题目来源于全网收集,答案来源于…...
通过`ssh`同步`tmux`剪贴板内容
通过ssh同步tmux剪贴板内容 通过ssh连接远程服务器时,可以通过xclip同步tmux剪贴板内容。这需要在服务器上安装xclip,且需要在ssh远程连接时开启X11。 此处附tmux剪贴板调用xclip的配置: # Copy the current buffer to the system clipboa…...
HTTP 响应状态代码
HTTP 响应状态代码 HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。 响应分为五类: 信息性回复 ( 100 – 199)成功响应 ( 200 – 299)重定向消息 ( 300 – 399)客户端错误响应 ( 400 – 499)服务器错误…...
[OPEN SQL] 新增数据
INSERT语句用于数据的新增操作 本次操作使用的数据库表为SCUSTOM,其字段内容如下所示 航班用户(SCUSTOM) 该数据库表中的部分值如下所示 1.插入单条数据 语法格式 INSERT <dbtab> FROM <wa>. INSERT INTO <dbtab> VALUES <wa>. INSERT &…...
OpenHarmony—UIAbility组件生命周期
概述 当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,…...
Mybatis的使用
MyBatis 是一个流行的 Java 持久层框架,它提供了 SQL 映射和对象关系映射的功能,让开发者能够更加便捷地操作数据库。MyBatis 通过 XML 或注解的方式配置 SQL 语句,并将 Java 对象与数据库表进行映射,以简化 JDBC 的复杂操作。以下…...
Python 播放音乐
本篇是使用Python pygame库来实现操作音乐。 安装pygame 播放音乐需要pygame库,如果没有可以进行安装。 命令如下: pip install pygame 引入类库 需要引入两个类库,即time和pygame。 示例如下: import time import pygame 播…...
[嵌入式系统-21]:RT-Thread -7- 内核组件编程接口 - 定时器
目录 一、RT-Thread定时器 1.1 概述 1.2 定时器的种类 1.2.1 周期性 1.2.2 实时性 1.2.3 功能 二、 RT-Thread 定时器的一般步骤 2.1 步骤 2.2 Flag 2.3 示例 一、RT-Thread定时器 1.1 概述 在 RT-Thread 中,定时器是一种常用的机制,用于在指…...
Python Matplotlib 的学习笔记
Python Matplotlib 的学习笔记 0. Python Matplotlib 简介1. 为什么要用 Matplotlib?2. Matplotlib 基础类详解2-1. Line(线)2-2. Marker(标记)2-3. Text(文本)2-4. Legend(图例&…...
SQL语言1
创建数据库 CREATE DATABASE 展示数据库 SHOW DATABASE 整数 INT 有小数点的数 DECIMA(m, n) #m是有几位数,n是有几位小数 字符串 VARCHAR(n) (Binary Large Object)图片 影片 BLOB ‘YYYY-MM-DD’日期 DATA YYYY-MM-DD HH:MM:SS 记…...
PowerShell搭建vue起始项目
Windows PowerShell搭建vue起始项目 搜索PowerShell,以管理员身份运行。 复制文件夹路径 cd 到这个文件夹位置 命令行创建项目:vue create 项目名 这里写自己的项目名就行,我写的yeb vue create yeb 创建成功后是这样的 有颜色的就是选中的ÿ…...
jmeter遇到连接数据库的问题
jmeter连接mysql或者oracle简单,但是连接过inceptor吗? 上货 1、下载驱动inceptor 5.1.2.jar包 2、在添加驱动那里导入 3、在JBC request中的写法 PS:没什么可说的...
应急响应实战笔记02日志分析篇(3)
第3篇:Web日志分析 ox01 Web日志 Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。 我们来…...
AI大模型大数据隐私安全解决方案
随着人工智能技术飞速迭代,大模型训练、精调与推理愈发依赖海量数据,云上环境的便捷性也让数据隐私保护面临严峻挑战。AI大模型数据处理全流程包含大量敏感信息,一旦泄露、篡改或滥用,将损害用户权益、引发合规风险与信任危机。因…...
毫米波雷达3D重建技术:挑战与RFconstruct系统创新
1. 毫米波雷达3D重建技术概述在自动驾驶感知系统中,毫米波雷达因其独特的物理特性正扮演着越来越关键的角色。与激光雷达和摄像头相比,工作在76-81GHz频段的毫米波雷达具有穿透雾霾、雨雪的能力,且不受光照条件影响,这使其成为全天…...
抖音本地生活运营4大核心秘籍
最近参加了一场 抖音本地生活全域运营实战特训营,两天一夜,从理论到实操。把最核心的 4 个模块整理出来,分享给想做本地生活的技术/运营同学。一、账号主页:让抖音自动帮你获客抖音主页就是你的线上门头。很多商家挂个风景图&…...
番茄小说下载器终极指南:3分钟掌握全平台电子书制作技巧 [特殊字符]
番茄小说下载器终极指南:3分钟掌握全平台电子书制作技巧 🚀 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 番茄小说下载器是一款基于Rust语言开发的专…...
【2026年拼多多暑期实习/春招- 5月17日-第四题- 多多的道路修建Ⅱ】(题目+思路+JavaC++Python解析+在线测试)
题目内容 多多现在在负责多多乡村的修建。 道路修建问题可以看作是在一条直线上,有NNN个单位。 经过认真分析,他发现每一段路有两种修建的方案,分别为“修111”和“修22...
终极Python通达信数据读取指南:5分钟快速入门量化分析
终极Python通达信数据读取指南:5分钟快速入门量化分析 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易领域,通达信数据读取一直是Python开发者面临…...
3大创新突破:APK Installer如何重新定义Windows上的Android应用体验
3大创新突破:APK Installer如何重新定义Windows上的Android应用体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在当今跨平台应用需求日益增长的背景下…...
卡片里放图片?用 memory:// 协议才是正确打开方式
文章目录卡片图片的限制项目结构卡片 UI:用 memory:// 显示图片FormAbility:下载图片 → 写入共享内存 → 推送更新显示本地图片(无需下载)memory:// 协议原理关键注意事项写在最后卡片里显示图片这件事比我想象的要麻烦一点。卡片…...
Google发现的神级Prompt工程新技巧:重复Prompt提升效果
Google发现的神级Prompt工程新技巧:重复Prompt提升效果 关键词:Prompt工程、提示词优化、LLM技巧、GPT技巧、AI提问技巧、Prompt Repetition、提示词工程一、最近发现一个被低估的Prompt技巧 pdf地址 https://arxiv.org/pdf/2512.14982最近在看一篇 Goog…...
nvm-windows深度实战:Windows平台Node.js版本管理的系统化解决方案
nvm-windows深度实战:Windows平台Node.js版本管理的系统化解决方案 【免费下载链接】nvm-windows A node.js version management utility for Windows. Ironically written in Go. 项目地址: https://gitcode.com/gh_mirrors/nv/nvm-windows nvm-windows是一…...
