Java 流程控制之 for 循环
Java语言中的for循环是一种常用的循环结构,用于重复执行一段代码,直到指定的条件不再成立。在本篇博客中,我们将深入探讨Java中的for循环,包括其语法、用法和示例。
一、for循环的基本语法
for循环的基本语法如下:
for (initialization; condition; update) {// statement(s) to be executed repeatedly
}
其中,initialization是循环变量的初始化语句,用于将循环变量初始化为一个初始值;condition是循环条件,如果条件为true,则执行循环代码块;update是循环变量的更新语句,用于在每次循环执行完成后更新循环变量的值。
下面是一个简单的for循环示例,用于输出数字1到5:
for (int i = 1; i <= 5; i++) {System.out.println(i);
}
输出结果为:
1
2
3
4
5
在上面的示例中,循环变量i的初始值为1,循环条件为i<=5,循环执行完成后,每次将i的值加1。
二、for循环的高级用法
除了基本的for循环语法之外,Java还提供了一些高级的for循环用法,包括增强型for循环和for-each循环。
- 增强型for循环
增强型for循环(也称为for-in循环)是Java SE5中新增的一种for循环语法,用于遍历数组或集合中的元素。其基本语法如下:
for (type variable : array/collection) {// statement(s) to be executed repeatedly
}
其中,type是数组或集合中元素的类型;variable是循环变量,用于存储数组或集合中的每个元素;array/collection是要遍历的数组或集合。
下面是一个简单的增强型for循环示例,用于遍历数组中的元素:
int[] nums = {1, 2, 3, 4, 5};
for (int num : nums) {System.out.println(num);
}
输出结果为:
1
2
3
4
5
在上面的示例中,循环变量num用于存储数组nums中的每个元素。
- for-each循环
for-each循环是一种基于迭代器的循环语法,用于遍历集合中的元素。其基本语法如下:
for (type variable : iterable) {// statement(s) to be executed repeatedly
}
其中,type是集合中元素的类型;variable是循环变量,用于存储集合中的每个元素;iterable是要遍历的集合。
下面是一个简单的for-each循环示例,用于遍历List集合中的元素:
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
for (String name : names) {System.out.println(name);
}
输出结果为:
Alice
Bob
Charlie
在上面的示例中,循环变量name用于存储List集合names中的每个元素。
三、break 和 continue 的区别
在Java中,break和continue是两种控制流语句,可用于控制for循环的执行流程。虽然它们都可以用于跳出for循环,但是它们的作用方式略有不同。
- break语句
在for循环中,break语句用于跳出循环,即立即停止循环的执行。一旦执行到break语句,程序将立即跳出循环,继续执行循环后面的代码。例如,下面的代码用于在数组中查找特定值,并在找到特定值后立即停止循环:
int[] nums = {1, 2, 3, 4, 5};
int target = 3;
for (int num : nums) {if (num == target) {System.out.println("Target found!");break;}
}
在上面的代码中,如果循环变量num等于目标值target,则执行break语句,跳出循环。
- continue语句
在for循环中,continue语句用于跳过当前循环迭代,即立即开始下一次循环迭代。一旦执行到continue语句,程序将跳过当前循环迭代,继续执行下一次循环迭代。例如,下面的代码用于输出数组中的所有奇数:
int[] nums = {1, 2, 3, 4, 5};
for (int num : nums) {if (num % 2 == 0) {continue;}System.out.println(num);
}
在上面的代码中,如果循环变量num是偶数,则执行continue语句,跳过当前循环迭代,继续执行下一次循环迭代。
总的来说,break和continue都可以用于控制for循环的执行流程,但是它们的作用方式略有不同。break用于立即停止循环的执行,而continue用于跳过当前循环迭代,立即开始下一次循环迭代。在实际编程中,根据具体需求选择合适的控制流语句,可以使程序更加简洁、高效。
四、总结
for循环是Java中常用的循环结构之一,用于重复执行一段代码,直到指定的条件不再成立。除了基本的for循环语法之外,Java还提供了增强型for循环和for-each循环,用于遍历数组和集合中的元素。在实际编程中,for循环是非常有用的工具,可以大大简化代码的编写和阅读,提高程序的效率和可读性。
相关文章:
Java 流程控制之 for 循环
Java语言中的for循环是一种常用的循环结构,用于重复执行一段代码,直到指定的条件不再成立。在本篇博客中,我们将深入探讨Java中的for循环,包括其语法、用法和示例。 一、for循环的基本语法 for循环的基本语法如下: …...
Kubernetes那点事儿——暴露服务之Ingress
Kubernetes那点事儿——暴露服务之Ingress 前言一、ingress负载均衡器Ingress Controller路由规则Ingress 二、Ingress Controller三、案例 前言 在 k8s 集群中,如果我们将服务暴露出来,提供访问,可以使用Nodeport方式,但是Nodepo…...
八股文总结
文章目录 项目介绍1.不动产项目项目难点机器学习算法调研图像提取算法调研数据集-ImageNetXceptionVGGInceptionDensenetMobilenet 系统流程图 2.图书项目技术栈ShiroMybatisMyBatis:Mybatis Plus: 面试问题 Java基础基本数据类型反射接口和抽象类异常代理模式1. 静态代理2. 动…...
【浅学 MyBatis 】
MyBatis 笔记记录 一、MyBatis基础1. MyBatis介绍及快速入门2. 相关API介绍2.1 Resources2.2 SqlSessionFactory&&SqlSessionFactoryBuilder2.3 SqlSession 3. 映射配置文件4. 核心配置文件4.1 规范写法4.2 参数和返回类型_起别名 5. 引入Log4j 二、MyBatis进阶1. 接口…...
Windows版Redis安装
最近电脑重装了系统,很多常用的软件、应用都没有了,所以需要重新装,所以想借此机会把一些安装比较复杂的应用的安装过程,重新记录一下,方便后续, 安装 Redis默认只有Linux的版本,但是微软为了更…...
Flume面试题二十道
什么是Apache Flume? 参考答案:Apache Flume是一个可靠、分布式、可扩展的日志收集和聚合系统。它用于将大量的日志数据从不同的源(如Web服务器、应用程序日志)传输到目标(如Hadoop、HBase)中进行存储和分析…...
单链表OJ题:LeetCode--138.复制带随即指针的链表
朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第138道单链表OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏:数据结构与算法 个 人…...
Chapter7: SpringBoot与数据访问
尚硅谷SpringBoot顶尖教程 1. JDBC 1.1 依赖及配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>mysql</groupId…...
【Sqlite3】maraidb和sqlite3部分命令操作区别
maraidb和sqlite3部分命令操作区别记录 1.安装sqlite3 在实现我的视频点播系统项目时,我尝试封装了两种数据库的调用逻辑 mysql(maraidb)sqlite3 这里封装sqlite3的原因是,sqlite3主要针对的就是嵌入式数据库,其性能…...
Linux中新建用户使用sudo问题
文章目录 sudo问题 sudo问题 sudo:权限提示指令,当使用sudo这条指令时,会将普通用户的权限提升为root权限 但是在命令行新建用户,这个用户使用sudo指令对一条指令提权是用不了的 这个用户没有在sudoers file这个文件中ÿ…...
Sentinel源码分析-ProceesorSlotChain调用链及树状资源节点
Sentinel 实现流控,隔离,降级等功能,本质要做两件事: 数据统计: 统计某个资源的访问数据(QPS,RT(响应时间),异常比例)等信息规则判断: 判断流控规…...
springboot 连接 kafka集群(kafka版本 2.13-3.4.0)
springboot 连接 kafka集群 一、环境搭建1.1 springboot 环境1.2 kafka 依赖 二、 kafka 配置类2.1 发布者2.1.1 配置2.1.2 构建发布者类2.1.3 发布消息 2.2 消费者2.2.1 配置2.2.2 构建消费者类2.2.3 进行消息消费 一、环境搭建 1.1 springboot 环境 JDK 11 Maven 3.8.x spr…...
Nacos配置中心使用(Spring Cloud版)
目标 向项目中集成Nacos配置。原项目是一个SpringBoot项目。这里假设我们无法修改原有项目的SpringBoot版本。 注意 在不动SpringBoot版本的前提下,根据SpringBoot的版本,确定Spring Cloud和Nacos版本。Nacos版本其实就是Spring Cloud Alibaba版本。在…...
STM32F407硬件I2C实现MPU6050通讯(CUBEIDE)
STM32F407硬件I2C实现MPU6050通讯 文章目录 STM32F407硬件I2C实现MPU6050通讯cubeide设置写操作与读操作函数实现复位,读取温度,角度等函数封装mpu6050.cmpu6050.h代码分析 DMP移植1.修改头文件路径为自己的头文件路径2.修改I2C读写函数为自己mcu平台的读…...
HTML5 语义元素(一)页面结构
本篇主要介绍HTML5增加的语义元素中关于页面结构方面的,包含: <article>、<aside>、<figure>、<figcaption>、<footer>、<header>、<main>、<nav>、<section>等元素。 目录 1. 语义元素介绍 1.…...
嵌套滚动实践:onInterceptTouchEvent与NestedScrolling【实用为准】
嵌套滚动:内外两层均可滚动,比如上半部分是一个有限的列表,下半部分是WebView,在内层上半部分展示到底的时候,外部父布局整体滚动内部View,将底部WevView拉起来,滚动到顶部之后再将滚动交给内部…...
Redis入门 - 5种基本数据类型
原文首更地址,阅读效果更佳! Redis入门 - 5种基本数据类型 | CoderMast编程桅杆https://www.codermast.com/database/redis/five-base-datatype.html 说明 在我们平常的业务中基本只会使用到Redis的基本数据类型(String、List、Hash、Set、…...
mybatis-plus用法(一)
MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率。下文使用缩写 mp来简化表示 MyBatis-plus,本文主要介绍 mp 整合 Spring Boot 的使用。 (5条消息) mybatis-plus用法(二)_渣娃工程师的博客-CSDN博客 1…...
源码安装包管理
1. 源码包基本概述 在linux环境下面安装源码包是比较常见的, 早期运维管理工作中,大部分软件都是通过源码安装的。那么安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件。 源码包的编译用到了linux系统里的编译器,通常源码包…...
Vue|获取表单数据
在Vue中获取表单数据有多种方式,具体取决于你使用的是哪种表单元素和你的需求。 1. 单个表单元素: 如果你只需要获取单个表单元素的值,可以使用v-model指令将表单元素的值绑定到Vue实例的一个属性上。例如: <input type&quo…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
EEG-fNIRS联合成像在跨频率耦合研究中的创新应用
摘要 神经影像技术对医学科学产生了深远的影响,推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下,基于神经血管耦合现象的多模态神经影像方法,通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里,本研…...
数据挖掘是什么?数据挖掘技术有哪些?
目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...
ABAP设计模式之---“Tell, Don’t Ask原则”
“Tell, Don’t Ask”是一种重要的面向对象编程设计原则,它强调的是对象之间如何有效地交流和协作。 1. 什么是 Tell, Don’t Ask 原则? 这个原则的核心思想是: “告诉一个对象该做什么,而不是询问一个对象的状态再对它作出决策。…...
