JAVA_for - each循环

本章咱们聊聊简单的for-each循环:看完这章,写个test代码,以后写for-each循环应该就是探囊取物,胸有成竹。

for-each循环基本语法

for(元素类型 元素变量 : 数组名)
{
   //操作语句
}

简单说几句:

for-each循环是for循环的简化版本,那么换汤不换药;这个语法格式怎么理解?好说好说:

for()

是进行循环操作,操作肯定要有循环的东西——现在我们暂时针对数组(主要是作者才疏学浅)

我们操作的整体是一个数组,在c里面,传数组名,意味着传首元素的地址——就是让for-each找到这个要进行操作的数组。

for( ... ...  数组名)

而循环的核心是什么?便是贯穿始终的 i (循环变量)。但是for-each循环是把循环变量和数组元素结合起来,使数组元素成为循环变量。数组元素 :必须有类型。循环变量 :必须有一个响当当的名字

然后就有了:

for(元素类型 元素名 : 数组名)俩部分再用分号隔开

test代码:

光学不练,一切知识如过眼云烟:我们实际操作一把

一维数组test

package forEach;

public class Foreach
{
    public static void main(String[] args)
    {
        String[] testcode = {"Panda","loves","bamboo"};//创建一个String(字符串)类型数组并初始化
        for(String ele : testcode)//String类型的元素,循环变量即每一个数组里的元素,都叫ele : 把要遍历的数组名传过去,找到这个数组
        {
            System.out.printf("%s ",ele);//打印这个每个元素
        }
        System.out.printf("\n");//一维数组测试
        
    }

}

效果:

不错不错,二维数组也试试:

二维数组test

package forEach;

public class Foreach
{
    public static void main(String[] args)
    {
         String[][] test2 = {{"Monkey loves bananas"},{"Dog loves bones"},{"Cat loves fish"}};
        for(String[] ele : test2)//二维数组的每一个元素都是一维数组,所以String[]
        {
            System.out.printf("%s\n",ele);
        }//二维数组测试
        
    }

}

效果:

 加组验证:

for - each循环赋值能否改变数组元素

验证在for-each循环里面能否改变数组的值(常量字符串的元素本身也不能改变)

package forEach;

public class Foreach
{
    public static void main(String[] args)
    {
        int[] ints = {1,2,3,4};
        for(int eleint : ints)
        {
            eleint += 4;//每个元素都加上4
            System.out.printf("%d ",eleint);//输出

        }
        System.out.printf("\n");//俩组打印结果换行
        for(int ele : ints)
        {
            System.out.printf("%d ",ele);//输出
        }
        //验证在for-each循环里面能否改变各个元素的值
 
    }

猜猜两组打印结果:

可见,在for-each循环里面,我们虽然是传了个地址,但是对对数组操作的时候,我们还复制了一份数组的元素内容。我们是对复印件操作,而原来的数组就是原件 ,没有变化。

至于补充的知识:

for-each我们自己也发现,起点是数组首元素,终点是数组最后一个元素。我们在写循环,似乎不用关心起点和终点,并且默认一次只遍历一个元素。

小总结:for-each循环对于简单的遍历操作可谓是省心省力,不过至于赋值和按需求检索元素则另寻for循环解决

for-each循环,over...

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Games104 听后笔记

1、为什么UE5要自己写一套STL库 因为传统的STL库中,例如:vector,它一般采用的是双倍扩容法,加入1000个数据装满了,现在需要又加一个,那么就开辟了2000个数据的空间,那么当前就又999的数据空间暂…

Java的字符串的基础知识(必看)

目录 Java的字符串的基础知识(必看) String API的使用 String概述 创建String对象的两种方式 号比的是什么? 难点 经典String案例 易错点 StringBuilder 疑难点: StringJoiner 字符串相关类的底层原理 中文的存储原理 String的常见的构造方法 Java的字符串的基础…

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具

FastGithub github加速神器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址: 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…

WorkPlus最佳的内网通讯软件解决方案,助力企业构建高效沟通环境

高效的内部通讯对于团队协作和工作效率至关重要,而选择适合的内网通讯软件,能够提升企业的通讯效能。WorkPlus以其卓越的性能和全面的功能,成为企业内网通讯软件的最佳选择。 为何选择WorkPlus作为企业的内网通讯软件呢?首先&…

西藏实景三维技术研讨交流会成功举办

2024年3月21-22日,西藏自治区“实景三维技术研讨交流会”在拉萨成功举办。 本次会议由西藏自治区自然资源厅、自然资源部重庆测绘院指导,西藏自治区测绘学会、西藏自治区地理信息产业协会主办,武汉大势智慧科技有限公司(后简称“…

Java多线程实战-从零手搓一个简易线程池(二)线程池与拒绝策略实现

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️本系列源码仓库:多线程并发编程学习的多个代码片段(github) 🏷️个人学习笔记,若有缺误,欢迎评论区指正…

【每日一题 | 动态规划】访问完所有房间的第一天

文章目录 Tag题目来源解题思路方法一:动态规划 写在最后 Tag 【动态规划】【数组】【2024-03-28】 题目来源 1997. 访问完所有房间的第一天 解题思路 方法一:动态规划 定义状态 定义 f[i] 表示第一次到达房间 i 的日期编号。 根据题意,…

VMware vSAN OSA存储策略 - 基于虚拟机的分布式对象存储

简介 博客:https://songxwn.com/ 存储策略 (Storage Policy) 是管理员定义的一组规则,这组规则定义了数据对象在 vSAN 存储上是如何保存的,存储策略定义了数据存储的可靠性、访问性能等特性。vSAN 提供了基于存储策略的存储管理 SPBM (Stor…

upload-labs-master靶场训练笔记

2004.2.17 level-1 &#xff08;前端验证&#xff09; 新建一个写有下面一句话木马的php文件&#xff0c;然后把后缀改为png <?php eval($_POST["abc"]); ?> 用bp抓包后更改文件后缀为php 再用蚁剑等工具链接即可拿下shell level-2 &#xff08;后端…

js改变图片曝光度(高亮度)

方法一&#xff1a; 原理&#xff1a; 使用canvas进行滤镜操作&#xff0c;通过改变图片数据每个像素点的RGB值来提高图片亮度。 缺点 当前项目使用的是svg&#xff0c;而不是canvas 调整出来的效果不是很好&#xff0c;图片不是高亮&#xff0c;而是有些发白 效果 代码 …

量子通信达新高度!两大诺奖技术联手,铸就前所未有的高效纠缠光子源

滑铁卢大学量子计算研究所&#xff08;IQC&#xff09;的科学家们成功地融合了两项诺贝尔奖级别的研究成果&#xff0c;从而在量子通信领域取得了重大进展。他们现在能够通过量子点技术高效生成几乎完美的纠缠光子对&#xff0c;这一突破性成果已在《通信物理学》&#xff08;C…

实例:NX二次开发求取封闭曲线的面积(多个封闭曲线)

一、概述 最近在NX二次开发群里有人推了一篇关于写求取封闭曲线面积的文章。针对小白的我决定试着做一做&#xff0c;期间遇到了很多问题&#xff0c;全部用NXOpenC通过录制代码进行修改&#xff0c;最后发现老是有问题&#xff0c;后来通过ufun转化解决了问题&#xff0c;个人…

如何使用在项目中使用echarts

一、使用echarts的好处和作用 ECharts 是一个强大的数据可视化库&#xff0c;主要用于在网页上创建丰富多彩的交互式图表和地图。一些 ECharts 的好处和作用包括&#xff1a; 好处&#xff1a; 丰富的图表类型&#xff1a;ECharts 提供了各种常见的图表类型&#xff0c;如折线…

python的一些知识点

在C C Java中&#xff0c;基本数据类型变量&#xff08;将常量数据存储在变量空间当中&#xff09; int a 3; int b 4; 在C C中&#xff0c;指针变量&#xff08;存储的是变量的物理内存地址&#xff09; int a 3; int* b; b &a; int** c; c &b; printf("%d&…

jira安装与配置

1. 环境准备 环境要求 1) JDK1.8以上环境配置 2) Mysql数据库5.7.13 3) Jira版本7及破解包 1.1 JDK1.8安装配置 1) 首先下载 JDK1.8&#xff0c; - 网址&#xff1a;https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html - windows64 版&am…

Vue3气泡卡片(Popover)

效果如下图&#xff1a;在线预览 APIs 参数说明类型默认值必传title卡片标题string | slot‘’falsecontent卡片内容string | slot‘’falsemaxWidth卡片内容最大宽度string | number‘auto’falsetrigger卡片触发方式‘hover’ | ‘click’‘hover’falseoverlayStyle卡片样式…

开源AI引擎:利用影像处理与目标检测技术对违章建筑排查

一、项目案例介绍 随着城市化进程的加快&#xff0c;城市规划和管理工作面临着前所未有的挑战&#xff0c;违章建筑的排查与处理成为了城市管理中的一项重要任务。传统的违章建筑排查方法依赖于人力巡查&#xff0c;效率低下且难以全面覆盖。为了解决这一问题&#xff0c;现代…

C++资产设备管理系统

一、引言 1.1 项目设计背景及意义 1.1.1理论研究基础 &#xff08;1&#xff09;C在C的基础上增加了面向对象的机制。 &#xff08;2&#xff09;充分利用面向对象机制中的多态性实现函数的设计。 1.1.2 技术层面的支持 运用系统为C面向对象程序设计提供的各种设计方法和V…

DAZ Studio中常用的快捷键组合

CtrlAlt左键: 旋转视图CtrlAlt右键: 平移视图CtrlF: 在Mac上对应AppleF,聚焦选中的物体Alt方向键: 平移视图CtrlP: 返回透视视图W/A/S/D: 上/下/左/右视图ShiftF11: 在Mac上可能需要添加Option键,全屏模式F3: 启用X射线视见效果Ctrl1到0: 切换各种渲染式样CtrlL: 切换场景灯光 …

Midjourney辞典AIGC中英双语图文辞典+Midjourney提示关键词

完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077