Java基础 — 循环
介绍
Java基础循环是程序流程控制的核心结构,主要用于重复执行特定代码块。常见的循环包括for、while和do-while三种形式,开发者可根据不同场景灵活选择。
合理使用循环关键字能有效提升代码执行效率。掌握循环结构的核心在于理解执行流程与条件判断的时序关系,通过变量控制和逻辑设计实现精准的重复操作。
循环结构类型
Java基础循环结构包括:for循环(明确次数,初始化、条件、迭代)、while循环(先判断条件后执行)、do-while循环(先执行一次再判断条件)。三者均用于重复执行代码,根据场景选择不同结构控制流程。
for循环
语法:
for (初始化; 条件判断; 迭代操作) {// 循环体}
特点:适用于已知循环次数的场景。
for (int i = 1; i <= 5; i++) {System.out.println(i); // 输出1到5}
while循环
语法:
while (条件判断) {// 循环体}
特点:先判断条件,条件为真才执行循环体。
int i = 1;while (i <= 5) {System.out.println(i); // 输出1到5i++;}
do-while循环
语法:
do {// 循环体} while (条件判断);
特点:至少执行一次循环体,再判断条件。
int i = 1;do {System.out.println(i); // 输出1到5i++;} while (i <= 5);
增强型for循环(for-each)
语法:
for (数据类型 变量名 : 数组/集合) {// 循环体}
特点:遍历数组或集合,无需手动控制索引。
int[] nums = {1, 2, 3};for (int num : nums) {System.out.println(num); // 输出1,2,3}
循环控制语句
Java循环控制语句包括:break(立即终止循环)、continue(跳过本次循环剩余代码)、return(退出方法),支持标签控制多层循环跳转,用于灵活调整执行流程。
break
立即终止当前循环,跳出循环体。
for (int i = 1; i <= 10; i++) {if (i == 5) break; // 当i=5时退出循环System.out.println(i); // 输出1到4}
continue
- 跳过本次循环剩余代码,直接进入下一次循环。
for (int i = 1; i <= 5; i++) {if (i == 3) continue; // 跳过i=3的情况System.out.println(i); // 输出1,2,4,5
}
无限循环与注意事项
-
无限循环
-
使用不当会导致程序无法终止。
-
while (true) { // 无限循环,需配合break退出// 代码逻辑if (条件) break; }
-
-
常见错误
-
死循环:忘记更新循环变量。
-
int i = 1; while (i <= 5) { // i未递增,导致无限循环System.out.println(i); }
-
作用域问题:循环变量在外部不可访问。
-
i = 1; i <= 5; i++) { ... } System.out.println(i); // 报错!i仅在循环内有效
-
循环适用场景
- for:已知循环次数(如遍历数组)。
- while:未知次数,需条件控制(如读取用户输入直到合法)。
- do-while:至少执行一次(如菜单显示)。
- for-each:简化集合/数组遍历。
嵌套循环示例
打印九九乘法表:
for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {System.out.print(j + "×" + i + "=" + (i*j) + "\t");}System.out.println();
}
总结
Java基础循环知识是编程中的重要内容,主要包括三种循环结构及两种控制语句。for循环适用于已知循环次数的场景,其语法由初始化、条件判断和迭代部分组成,常用于遍历数组或集合。while循环先判断条件再执行循环体,适合不确定循环次数但需要前置条件验证的情况。do-while循环则先执行一次循环体再进行条件判断,确保至少执行一次操作。此外,增强型for循环(foreach)专为遍历数组或集合设计,能简化代码结构但缺乏索引控制。
循环控制语句中,break用于立即终止当前循环,适用于满足特定条件时提前退出;continue则会跳过当前迭代剩余代码,直接进入下一次循环。嵌套循环需注意内外层变量的作用域,避免逻辑混乱。在编写循环时,必须确保循环条件能够动态变化,否则可能引发无限循环。合理选择循环结构可提升代码效率和可读性,例如明确次数时优先使用for循环,动态条件优先使用while循环。理解循环机制对后续学习集合操作、多线程等高级特性具有重要意义。
相关文章:
Java基础 — 循环
介绍 Java基础循环是程序流程控制的核心结构,主要用于重复执行特定代码块。常见的循环包括for、while和do-while三种形式,开发者可根据不同场景灵活选择。 合理使用循环关键字能有效提升代码执行效率。掌握循环结构的核心在于理解执行流程与条件判断的时…...
参考平面的宽度-信号与电源完整性分析
参考平面的宽度: 计算特征阻抗时假设参考平面是无限宽的平面。在参考平面的宽度远大于线宽或介质厚度时,这种假设是正确的。但是PCB板上的参考平面经常被反焊盘掏空,当互连线经过参考平面掏空区域附近时,掏空的局部互连线参考平面变窄&#x…...
【Linux】Centos7 安装 Docker 详细教程
一、安装步骤 步骤一:确定你是Centos7及以上的版本 cat /etc/redhat-release 步骤二:卸载旧版本 查看官方文档:CentOS | Docker Docs 步骤三:安装GCC等工具 1.首先确保 CentOS7 能上外网 ping www.baidu.com 2.更新 Centos7…...
开源AI智能名片链动2+1模式S2B2C商城小程序源码赋能下的社交电商创业者技能跃迁与价值重构
摘要:在移动互联网深度重构商业生态的背景下,社交电商创业者面临流量成本攀升、用户粘性不足、供应链协同低效等核心痛点。本文以“开源AI智能名片链动21模式S2B2C商城小程序源码”技术体系为研究对象,通过分析其技术架构、商业逻辑及实战案例…...
计算机视觉与深度学习 | LSTM原理及与卡尔曼滤波的融合
长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),旨在解决传统RNN在处理长序列数据时出现的梯度消失和梯度爆炸问题。以下为你详细介绍其基本原理: 核心思想:LSTM的核心思想是引入记忆单元和门控机制来控制信息的流动,从而解决传统RNN的梯度消失问题。记忆单元类似…...
阿里云域名智能解析至国内外AWS的合规化部署指南
引言 随着全球化业务的发展,企业常面临地域合规性与用户体验优化的双重挑战。本文以阿里云域名解析为核心,结合AWS中国区(北京/宁夏)与Global区域部署,提供一套完整的解决方案,实现: 智能流量调度:国内用户访问AWS中国区,海外用户自动路由至AWS Global全链路合规:满…...
一、鸿蒙编译篇
一、下载源码和编译 https://blog.csdn.net/xusiwei1236/article/details/142675221 https://blog.csdn.net/xiaolizibie/article/details/146375750 https://forums.openharmony.cn/forum.php?modviewthread&tid897 repo init -u https://gitee.com/openharmony/mani…...
计算机网络 | 应用层(3)-- 因特网中的电子邮件
💓个人主页:mooridy 💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记 关注我🌹,和我一起学习更多计算机的知识 🔝🔝🔝 目录 3. 因特网中的电子邮件 …...
Missashe考研日记-day27
Missashe考研日记-day27 0 写在前面 博主昨晚有事所以没学专业课,白天学了其他科,但是觉得不太好写博客,就合在今天一起写好了。 1 专业课408 学习时间:3h30min学习内容: 今天把内存管理部分剩下的关于分页分段和段…...
【Castle-X机器人】五、物联网模块配置与调试
持续更新。。。。。。。。。。。。。。。 【Castle-X机器人】五、物联网模块配置与调试 五、物联网模块配置与调试5.1 物联网模块调试物联网模块测试:控制物联网模块:物联网模块话题五、物联网模块配置与调试 5.1 物联网模块调试 调试前需确保Castle-x与mqtt主机服务器处于同…...
FastAPI 零基础入门指南:10 分钟搭建高性能 API
一、为什么选择 FastAPI? 想象一下,用 Python 写 API 可以像搭积木一样简单,同时还能拥有媲美 Go 语言的性能,这个框架凭借三大核心优势迅速风靡全球: 开发效率提升 3 倍:类型注解 自动文档,…...
有关图的类型的题目(1)
1、图着色问题 #include<bits/stdc.h> using namespace std; const int N510,MN*N; int color[N]; vector<int> g[M]; int v,m,k,n;void add(int a,int b){g[a].push_back(b);g[b].push_back(a); } int judge(int cnt){if(cnt!k)return 0;for(int i1;i<v;i){fo…...
threejs 零基础学习day01
一、threejs本地环境搭建 1、下载源码 (1)进入threejs官网,把源码下载到本地访问。https://github.com/mrdoob/three.js (2)使用git命令的方式进行下载(优点是,threejs更新频繁,这…...
dubbo 异步化实践
DubboService public class AsyncOrderFacadeImpl implements AsyncOrderFacade {private Logger logger LoggerFactory.getLogger(AsyncOrderFacadeImpl.class);// 构建线程池ThreadPoolExecutor threadPoolExecutor new ThreadPoolExecutor(1000, 1000, 10, TimeUnit.SECOND…...
Web端ER可视化
背景介绍 因业务需要,团队决定对原ER图功能进行重构。重构来自两方面,一是功能上进行了细分,二是实现方式发生了变化。下面是重构前后对比: 重构前重构后功能方面只有逻辑模型层面的ER图包括概念模型、逻辑模型、物理模型3个层面的ER图实现方式单页面、antv/g6微前端、Rea…...
Java在云计算、大数据、云原生下的应用和优势 - 面试实战
Java在云计算、大数据、云原生下的应用和优势 - 面试实战 第一轮提问 面试官:马架构,请简单介绍一下Java在云计算中的主要应用场景有哪些? 马架构:Java在云计算中的主要应用场景包括微服务架构设计、容器化部署(如D…...
精益数据分析(27/126):剖析用户价值与商业模式拼图
精益数据分析(27/126):剖析用户价值与商业模式拼图 在创业和数据分析的领域中,每一次深入学习都是一次成长的契机。今天,我们继续秉持共同进步的理念,深入研读《精益数据分析》,剖析用户价值的…...
从 Lambda 到 DSL:Kotlin 接口实现的演进之路
Kotlin 中优化 Android 接口实现的几种方式 在 Android 开发中,Kotlin 提供了多种优雅的方式来优化接口实现。以下是几种优化方案: 1. 使用 SAM 转换简化单方法接口 对于单一抽象方法(Single Abstract Method, SAM)接口: // 优化前 butto…...
GitOps进化:深入探讨 Argo CD 及其对持续部署的影响
什么是 GitOps? 虽然软件开发生命周期的大部分已经实现自动化,但基础设施仍然在很大程度上依赖于人工,需要专业团队的参与。随着当今基础设施需求的不断增长,实施基础设施自动化变得越来越重要。现代基础设施需要具备弹性&#x…...
有源晶振与无源晶振详解:区别、应用与选型指南
一、基本定义 无源晶振(Crystal,晶体谐振器) 结构:仅包含石英晶体,无内置振荡电路。 工作原理:依赖外部电路(如MCU的振荡器)驱动,通过机械振动产生谐振频率。 核心公式…...
机器学习:逻辑回归实现二元分类
本例子以鸡蛋受精卵为例,假设未受精的鸡蛋在某个区域聚集,受精的在另一个区域。比如,用正态分布生成两个类别的数据,均值不同,方差相同或不同。例如,未受精的鸡蛋的特征均值为[1,1],受精的为[4,4],这样两类数据点可以在二维空间中被分开。 首先,生成数据。使用sklear…...
Android学习总结之kotlin篇(一)
1. open 关键字的用法和作用深入源码分析 类的 open 修饰:在 Kotlin 字节码层面,对于一个open类,编译器会在生成的字节码中添加ACC_SUPER和ACC_OPEN标志。例如,定义一个open class TestOpenClass,反编译其字节码可以看…...
arcgis空间分析理论研究
arcgis的空间分析功能有(1)地形与地表分析;(2)距离与成本分析;(3)密度分析;(4)水文分析;(5)统计分析ÿ…...
70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2输出: 2解释: 有两种方法可以爬到楼顶。…...
Eigen核心矩阵/向量类 (Matrix, Vector, Array)
1. Matrix 类(稠密矩阵) 模板参数 cpp Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> Scalar: 元素类型(如 float, double, int)。 Rows/Cols: 行数和列数(Dynamic 表示动态大小)。 O…...
立创EDA
空格键:旋转 alt w : 布线 alt v : 放置过孔 shift x :先在原理图中框选,按下shiftx,批量选中pcd中的对应元件 shift h : 选中的网络持续高亮/取消高亮 更改位号:举例 框选要更改的电阻 右侧栏属性 --> 位号…...
计算机网络笔记(十二)——2.5数字传输系统
数字传输系统是光纤通信中实现高速数据传输的核心技术,解决了传统模拟传输的速率不统一、同步性差等问题。 一、早期数字传输的问题 速率标准不统一:北美(T1: 1.544Mbps)和欧洲(E1: 2.048Mbps)采用不同的…...
[FPGA Video IP] Video Processing Subsystem
Xilinx Video Processing Subsystem IP (PG231) 详细介绍 概述 Xilinx LogiCORE™ IP Video Processing Subsystem (VPSS)(PG231)是一个高度可配置的视频处理模块,设计用于在单一 IP 核中集成多种视频处理功能,包括缩放…...
java基础之枚举和注解
枚举 简介 枚举:enumeration,jdk1.5中引入的新特性,用于管理和使用常量 入门案例 第一步:定义枚举,这里定义一个动物类,里面枚举了多种动物 public enum AnimalEnum {CAT, // 猫DOG, // 狗PIG // …...
前端开发本地配置 HTTPS 全面详细教程
分为两步:生成证书、本地服务配置使用证书一、HTTPS 的基本概念 HTTPS 是一种安全的 HTTP 协议,它通过 SSL/TLS 对数据进行加密,确保数据在传输过程中不被窃取或篡改。在前端开发中,某些功能(如 Geolocation API、Web…...
C语言中宏的高级应用
一、宏的核心高级特性 1. 变参宏(Variadic Macros) 支持不定数量参数,用于灵活处理格式化字符串、日志输出等场景。 #include <stdio.h>// 定义支持可变参数的调试宏 #define DEBUG_LOG(format, ...) \printf("[DEBUG] %s:%d |…...
Simulink 数据字典(Data Dictionary)详解:使用场景、存储内容与调用方法
1. 引言 在 Simulink 建模中,随着模型复杂度增加,参数管理变得尤为重要。传统方法(如 MATLAB 工作区变量或脚本)在团队协作或大型项目中容易导致数据分散、版本混乱。数据字典(Data Dictionary) 提供了一种…...
部署yolo到k230教程
训练:K230 借助 AICube部署AI 视觉模型 YOLO等教程_嘉楠 ai cube多标签分类-CSDN博客K230模型训练ai cube报错生成部署文件异常_aicube部署模型显示生成部署文件异常-CSDN博客 部署: # 导入必要的库和模块 import os import ujson # 超快的JS…...
【高频考点精讲】第三方库安全审计:如何避免引入带漏洞的npm包
大家好,我是全栈老李。今天咱们聊一个前端工程师必须掌握的生存技能——如何避免把带漏洞的npm包引入项目。这可不是危言耸听,去年某大厂就因为在生产环境用了有漏洞的lodash版本,被黑客利用原型污染漏洞直接攻破后台系统。 为什么npm包会变成"定时炸弹"? npm生…...
【后端】主从单体数据库故障自动切换,容灾与高可用
在现代企业级应用中,数据库的高可用性和容灾能力是保障业务连续性的关键。尤其是在一些对稳定性要求较高的业务场景中,当主数据库发生故障时,如何快速切换到备用数据库并确保业务不受影响,成为了一个重要课题。本文将介绍一种基于 SpringBoot 和 Druid 数据源的解决方案,通…...
AI编程案例拆解|基于机器学习XX评分系统-后端篇
文章目录 5. 数据集生成使用KIMI生成数据集 6. 后端部分设计使用DeepSeek生成神经网络算法设计初始化项目在Cursor中生成并提问前后端交互运行后端命令 注意事项 关注不迷路,励志拆解100个AI编程、AI智能体的落地应用案例为了用户的隐私性,关键信息会全部…...
数据库设置外键的作用
数据库外键(Foreign Key)是关系型数据库中用于建立表与表之间关联关系的重要约束,其核心作用是确保数据的一致性、完整性和关联性。以下是外键的主要作用及相关说明: 1. 建立表间关联关系 外键通过引用另一张表的主键࿰…...
从基础到实战的量化交易全流程学习:1.1 量化交易本质与行业生态
从基础到实战的量化交易全流程学习:1.1 量化交易本质与行业生态 在金融市场数字化转型的浪潮中,量化交易凭借数据驱动的科学性与自动化执行的高效性,成为连接金融理论与技术实践的核心领域。本文作为系列开篇,将从本质解析、行业生…...
路由交换网络专题 | 第八章 | GVRP配置 | 端口安全 | 端口隔离 | Mux-VLAN | Hybrid
拓扑图 (1)通过 LSW1 交换机配置 GVRP 协议同步 VLAN 信息到所有接入层设备。 基于 GARP 机制:GVRP 是通用属性注册协议 GARP(Generic Attribute Registration Protocol)的一种应用,用于注册和注销 VLAN 属…...
重定向和语言级缓冲区【Linux操作系统】
文章目录 重定向重定向的原理重定向系统调用接口进程替换不会影响重定向bash命令行中输入,输出,追加重定向的区别输出重定向输入重定向追加重定向命令行中只支持向文件描述符为0,1,2的标准流进行>,>>…...
Channel如何安全地尝试发送数据
在 Go 语言中,无法直接检查 channel 是否关闭(没有类似 IsClosed(ch) 的方法),但可以通过 非阻塞发送 或 select 语句 安全地尝试发送数据,避免向已关闭的 channel 发送数据导致 panic。以下是具体实现方式:…...
MH2103 MH22D3系列的JTAG/SWD复用功能和引脚映射,IO初始化的关键点
MH21xx和MH22xx内核集成了串行/JTAG调试接口(SWJ-DP)。这是标准的ARM CoreSight调试接 口,包括JTAG-DP接口(5个引脚)和SW-DP接口(2个引脚)。 ● JTAG调试接口(JTAG-DP)为AHP-AP模块提供5针标准JTAG接口。 ● 串行调试接口(SW-DP)为AHP-AP模块提供2针(时钟࿰…...
Tortoise-ORM级联查询与预加载性能优化
title: Tortoise-ORM级联查询与预加载性能优化 date: 2025/04/26 12:25:42 updated: 2025/04/26 12:25:42 author: cmdragon excerpt: Tortoise-ORM通过异步方式实现级联查询与预加载机制,显著提升API性能。模型关联关系基础中,定义一对多关系如作者与文章。级联查询通过s…...
【C++11】列表初始化
📝前言: 这篇文章我们来讲讲C11引入的列表初始化{},注意这不是构造函数里的初始化列表!!! 在阅读文章之前,请你记住一句重点:万物皆可{}初始化 🎬个人简介:努…...
基于Cherry Studio + DeepSeek 搭建本地私有知识库!
在当今数字化时代,知识管理变得越来越重要。无论是个人还是企业,都希望能够高效地存储、管理和检索知识。而借助 AI 技术,我们可以实现更加智能的知识库系统。本文将详细介绍如何使用 Cherry Studio 和 DeepSeek 搭建本地私有知识库ÿ…...
栈相关算法题解题思路与代码实现分享
目录 前言 一、最小栈(LeetCode 155) 题目描述 解题思路 代码实现(C) 代码解释 二、栈的压入、弹出序列(剑指 Offer JZ31) 题目描述 解题思路 代码实现(C) 代码解释 总结…...
MongoDB Atlas与MongoDB连接MCP服务器的区别解析
MongoDB Atlas作为全托管的云数据库服务,与本地自建MongoDB实例在连接MCP(Model Context Protocol)服务器时存在显著差异。以下从配置方式、安全机制、功能特性三个维度对比两者的区别: 连接配置差异 • 本地MongoDB:…...
服务器传输数据存储数据建议 传输慢的原因
一、JSON存储的局限性 1. 性能瓶颈 全量读写:JSON文件通常需要整体加载到内存中才能操作,当数据量大时(如几百MB),I/O延迟和内存占用会显著增加。 无索引机制:查找数据需要遍历所有条目(时间复…...
【大模型】Coze AI 智能体工作流从配置到使用实战详解
目录 一、前言 二、工作流介绍 2.1 什么是工作流 2.2 工作流与对话流 2.2.1 两者区别 2.3 工作流节点介绍 2.3.1 工作流节点说明 2.3.2 开始节点与结束节点 2.4 工作流入口 2.4.1 自定义智能体入口 2.4.2 从资源库新增工作流 2.5 工作流使用限制 三、工作流配置与使…...
Java后端开发——分层解耦详解
文章目录 一、三层架构1.1 概述1.2 具体实现方法 二、分层解耦2.1 以往问题2.2 概念解释2.3 解耦思路 三、Spring核心:IOC & DI3.1 快速入门3.2 IOC(控制反转)详解3.3 DI(依赖注入)详解 注入方式 标签:…...