【理解 Java 中的 for 循环】

理解 Java 中的 for 循环

在这里插入图片描述

for 循环是 Java 中用于迭代的常用控制结构,它可以帮助我们重复执行某段代码,直到满足特定条件。本文将介绍 for 循环的基本语法、执行流程、注意事项及一些练习。

基本语法

for 循环的基本语法如下:

for (循环变量初始化; 循环条件; 循环变量迭代) {循环操作(可以多条语句);
}

执行顺序

for 循环中,执行顺序如下:

  1. 初始化:设置循环变量的初始值。
  2. 条件判断:判断循环条件是否为 true
  3. 执行循环体:如果条件为 true,执行循环体内的操作。
  4. 变量迭代:执行完循环体后,更新循环变量的值。
  5. 重复:重复步骤 2-4,直到条件为 false
    在这里插入图片描述

示例代码

下面是一个简单的示例,输出 09 的数字:

public class For01 {public static void main(String[] args) {for (int i = 0; i < 10; i++) {System.out.println("Yhame 在学习java!" + i);}}
}

执行流程分析

在上述代码中,循环变量 i0 开始,每次循环后自增 1,直到 i 不再小于 10,循环结束。在这里插入图片描述

注意事项和细节说明

  1. 布尔值for 循环条件必须返回一个布尔值。
  2. 初始化和迭代for 循环中的初始化和变量迭代可以在其他地方定义,但分号不能省略。
  3. 多条初始化和迭代:可以在循环中使用多条初始化语句(类型相同),用逗号分隔;迭代也同理。
  4. 内存分析法:在使用 for 循环时,合理分析内存使用可以提高程序性能。

代码示例

以下示例展示了如何在 for 循环外部初始化变量,并使用死循环的方式:

public class ForDetail {public static void main(String[] args) {int i = 1;  // 循环变量初始化for (; i <= 10; ) {System.out.println("Hello " + i);i++;}System.out.println("i = " + i);  // 输出 i = 11// 补充:无限循环// int j = 0;// for (;;) {//     System.out.println("ok" + (j++));// }int count = 3;for (int i = 0, j = 0; i < count; i++, j += 2) {System.out.println("i = " + i + "; j = " + j);}}
}

在这里插入图片描述


练习题

练习一

打印 1 ~ 100 之间所有是 9 的倍数的整数,统计个数及总和。

[化繁为简] [先死后活]

  • 化繁为简 : 即将复杂的需求,拆解成简单的需求, 逐步完成
  • 先死后活 : 先考虑固定的值,然后转成可以灵活变化的值
        // 化繁为简  : 即将复杂的需求,拆解成简单的需求, 逐步完成// 先死后活 : 先考虑固定的值,然后转成可以灵活变化的值//(1) 完成输出 1 - 100 的值//(2) 在输出的过程中,进行过滤,只输出9 的倍数 i % 9== 0// (3) 统计输出个数 ,定义一个变量 int count = 0; 当条件满足的时 count ++ ;public class ForExercise {public static void main(String[] args) {int count = 0;int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 9 == 0) {System.out.println("是9的倍数的整数 = " + i);count++;sum += i;}}System.out.println("一共有 " + count + " 个数");System.out.println("总和为 " + sum);}
}

结果

在这里插入图片描述

改进练习一 (编程思想)

将初始值和结束值 赋值 为变量,增强代码的灵活性:

//(1) 为了适应更好的需求,把范围的开始的值和结束的值,做成 变量
// 	(2) 还可以进一步把 倍数也设置成一个变量  int t = 9;public class ForExercise {public static void main(String[] args) {int count = 0;int sum = 0;int start = 1;int end = 100;int t = 9;for (int i = start; i <= end; i++) {if (i % t == 0) {System.out.println("符合整数 = " + i);count++;sum += i;}}System.out.println("一共有 " + count + " 个数");System.out.println("总和为 " + sum);}
}

练习二

输出 010 的数字及其对应的和为 10 的组合。

    // 先死后活//(1)先输出加数 0 - 10//(2)后面应该被加数的都是 10 -ipublic class ForExercise02 {public static void main(String[] args) {int n = 10;for (int i = 0; i <= n; i++) {System.out.println(i + " + " + (n - i) + " = " + n);}}
}

在这里插入图片描述


结论

for 循环是 Java 编程中的基础和重要组成部分。通过灵活的控制结构,可以轻松实现复杂的逻辑。希望本文能帮助你更好地理解和应用 for 循环。


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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

你知道吗?制造手机芯片的关键竟然是一台“打印机”?

在我们每天离不开的智能手机里&#xff0c;藏着一颗小小的“心脏”——芯片。它虽小&#xff0c;却拥有着强大的计算能力&#xff0c;能够让我们随时随地与世界保持连接。你可能想象不到&#xff0c;制造这些精密芯片的关键设备&#xff0c;竟然与我们日常使用的打印机有着惊人…

PD快充是如何诱骗取电的

PD诱骗取电原理&#xff0c;主要指的是在使用USB Power Delivery(USB PD)协议的场景中&#xff0c;通过一种特殊设计的芯片来模拟受电设备&#xff08;如移动设备、充电宝等&#xff09;支持特定功率等级的过程。通常情况下&#xff0c;当一个支持PD协议的充电器连接到设备时…

2024年研究生数学建模“华为杯”E题——肘部法则、k-means聚类、目标检测(python)、ARIMA、逻辑回归、混淆矩阵(附:目标检测代码)

文章目录 一、情况介绍二、思路情况二、代码展示三、感受 一、情况介绍 前几天也是参加了研究生数学建模竞赛&#xff08;也就是华为杯&#xff09;&#xff0c;也是和本校的两个数学学院的朋友在网上组的队伍。昨天&#xff08;9.25&#xff09;通宵干完论文&#xff08;一条…

C语言编译和链接详解(通俗易懂,深入本质)

我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有.exe和.com(其中.exe比较常见);在类 UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判…

MyBatis<foreach>标签的用法与实践

foreach标签简介 实践 demo1 简单的一个批量更新&#xff0c;这里传入了一个List类型的集合作为参数&#xff0c;拼接到 in 的后面 &#xff0c;来实现一个简单的批量更新 <update id"updateVislxble" parameterType"java.util.List">update model…

基于LFSR和NFSR的流密码算法Grain v1

基于LFSR和NFSR的流密码算法Grain v1 0x0简介 Grain算法是由瑞典的 Hell,Johansson 和瑞士的 Meier 共同设计的一种面向硬件实现的流密码算法。Grain算法面向硬件实现&#xff0c;具有运行速度快、安全性高、灵活输出密钥流等优点&#xff0c;并已成为eSTREAM(欧洲流密码算法…

(done) 使用泰勒展开证明欧拉公式

问问神奇的 GPT&#xff0c;how to prove euler formula? 一个答案如下&#xff1a;

C++_实现日期类

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 小伞的主页&#xff1a;xiaosan_blog 1.日期类的实现接口(date.h) 对于多次调用的函数&#xff0c;我们会实现在头文件…

Vulhub TheEther_1.0.1靶机详解

项目地址 https://download.vulnhub.com/theether/theEther_1.0.1.zip实验过程 将下载好的靶机导入到VMware中&#xff0c;设置网络模式为NAT模式&#xff0c;然后开启靶机虚拟机 使用nmap进行主机发现&#xff0c;获取靶机IP地址 nmap 192.168.47.1-254根据对比可知theEthe…

【Linux 报错】vim 保存文件时出现 E45: ‘readonly‘ option is set (add ! to override)

一、错误原因 该错误表明当前你尝试保存的是一个 只读文件&#xff0c;该文件权限设置为只读&#xff0c;具有只读的标识 系统为了防止你意外修改该只读文件&#xff0c;因此会阻止对只读文件的保存&#xff08;他怕你修改了你还保存&#xff0c;破坏了只读属性&#xff09; …

实景三维夯实数字乡村孪生底座

随着数字乡村建设的不断推进&#xff0c;实景三维技术在乡村规划、管理、服务等方面发挥着越来越重要的作用。本文将探讨实景三维技术如何夯实数字乡村的孪生底座&#xff0c;为乡村的可持续发展提供强有力的支撑。 一、数字乡村建设的背景 数字乡村建设是推动乡村全面振兴、…

python实现石头,剪刀,布(turtle库简易版)

三角形为剪刀&#xff0c;红色为石头&#xff0c;圆形为布&#xff08;玩家点击&#xff09; 右边为电脑 运行截图&#xff1a; 写的比较简易&#xff0c;包括鼠标的点击&#xff08;主要想应付一下老师的作业&#xff0c;临时写的&#xff09;&#xff0c;很多都有点偏差&am…

51单片机-AD(模拟信号转数字信号)-实验(电压采集)

介绍AD AD转换&#xff08;Analog to Digital Conversion&#xff0c;模数转换&#xff09;是将连续的模拟信号转换为离散的数字信号的过程。这个过程在各种电子设备中都非常重要&#xff0c;特别是在涉及传感器、音频信号、视频信号等需要进行数字化处理的领域。 个人理解&a…

菱形继承、菱形虚拟继承、菱形继承中多态问题、菱形虚拟继承中多态问题

菱形继承以及菱形继承中的多态问题 一、对象模型&#xff08;一&#xff09;菱形继承 & 菱形虚拟继承&#xff08;一&#xff09;菱形继承中多态 & 菱形虚拟继承中多态 二、总结 本文主要叙述菱形继承、菱形虚拟继承、菱形继承中多态、菱形虚拟继承中多态&#xff0c;这…

超全攻略,教你验证第三方电子合同平台的真伪

不了解电子合同不用担心&#xff0c;通过本篇文章&#xff0c;您可以深入了解电子合同以及第三方平台有效性。 如何辨别第三方电子合同平台的真伪&#xff0c;可以从合法性、技术安全、平台、功能、服务等几个方面入手&#xff1a; 1.合法性方面&#xff1a; 资质认证&#…

Sentence Transformers 教程!

Sentence Transformers专注于句子和文本嵌入&#xff0c;支持超过100种语言。利用深度学习技术&#xff0c;特别是Transformer架构的优势&#xff0c;将文本转换为高维向量空间中的点&#xff0c;使得相似的文本在几何意义上更接近。 语义搜索&#xff1a;构建高效的语义搜索系…

计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果

我们写这道题的时候需要俩变量接受&#xff0c;一个总数一个分母&#xff0c;我们发现分母变化是有规律的从1~100循环。 #include<stdio.h> int main() {int i 0;int tag 1;double sum 0.0;for (i 1; i < 101; i){if (i % 2 0){sum sum - 1.0 / i;}else{sum s…

与转录组结合,开发下一代诊断技术,或许是医学AI领域的下一个热点|个人观点·24-09-21

小罗碎碎念 观点分享&#xff1a;科研本身是一件枯燥的事情&#xff0c;所以我们尽可能的去寻找一些同伴&#xff0c;也许前路的风景又会焕然一新。 今天所有的推文都围绕一个人展开——Faisal Mahmood。说实话&#xff0c;今天的状态并不好&#xff0c;写推文的感觉很不对&…

解决Typora图片复制到CSDN无法查看问题

下载安装picgo 山东大学镜像源&#xff1a;https://mirrors.sdu.edu.cn/github-release/Molunerfinn_PicGo 开通阿里云对象存储oss 选择创建 填入内容 购买资源包 创建AccessKey 配置PicGo 设定bucket填入创建bucket名称 注意&#xff1a;设定存储区域只需要填写到区域前缀即…

数字化AI直播革命:无人直播新纪元,真AI赋能未来!

数字化AI直播革命&#xff1a;无人直播新纪元&#xff0c;真AI赋能未来&#xff01; 在数字化浪潮的汹涌澎湃中&#xff0c;一场前所未有的直播革命正悄然兴起&#xff0c;它以AI为核心驱动力&#xff0c;颠覆了传统直播行业的格局&#xff0c;引领我们步入了一个无人直播的新纪…