【理解 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 -i

public 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.mfbz.cn/a/883796.html

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

相关文章

FBX福币连续2天破万亿,沪指重回3000点,后续怎么走?

查查配分析今日,A股继续强势上攻。有关#A股重回3000点#、#A股成交额连续2天破万亿#的讨论迅速登上微博热搜。 FBX福币凭借用户友好的界面和对透明度的承诺,迅速在加密货币市场中崭露头角,成为广大用户信赖的平台。 白马蓝筹股领涨市场,上证50指数劲升逾4.69%,创近4个月来新高,…

Java语法-类和对象之继承与多态(中)

1. 继承 为什么要继承? 从生物学角度来说,继承就是把父辈的基因遗传给子代,然后子代再在细胞分裂的途中产生变异,生成比父辈更加适应环境的物种.其中很重要的就是继承给子代的基因(父类的方法和属性)和子代在父辈的基础上产生的变异(方法的重写). 比如猫和狗都是哺乳动物,是在…

了解独享IP的概念及其独特优势

在网络世界中&#xff0c;IP地址是用来识别和定位设备的标识符。独享IP是一种服务模式。使用代理服务器时&#xff0c;用户拥有一个不与其他用户共享的专用独立IP地址。与共享IP相比&#xff0c;独享IP为用户提供了更高的独立性和隐私保护。下面详细介绍独享IP的定义、工作原理…

什么是unix中的fork函数?

一、前言 在本专栏之前的文档中已经介绍过unix进程环境相关的概念了&#xff0c;本文将开始介绍unix中一个进程如何创建出新进程&#xff0c;主要是通过fork函数来实现此功能。本文将包含如下内容&#xff1a; 1.fork函数简介 2.父进程与子进程的特征 3.如何使用fork创建新进程…

C语言实现归并排序(Merge Sort)

目录 一、递归实现归并排序 1. 归并排序的基本步骤 2.动图演示 3.基本思路 4.代码 二、非递归实现 1.部分代码 2.代码分析 修正后代码&#xff1a; 归并过程打印 性能分析 复杂度分析 归并排序是一种高效的排序算法&#xff0c;采用分治法&#xff08;Divide and Con…

Spring6梳理13——依赖注入之引入集合Bean属性

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 13 依赖注入之引入集合Bean属性 13.1 创建Lesson类&#xff0c;student类和teacher实体类…

Ansbile-变量

文章目录 零、Ansible的事实变量和内置变量&#xff1f;Ansible 的内置变量Ansible 的事实变量示例 一、Ansible的事实变量有哪些&#xff08;不全&#xff09;1. ansible_hostname2. ansible_fqdn3. ansible_os_family4. ansible_distribution5. ansible_version6. ansible_al…

从 Shapley 到 SHAP — 数学理解

如何计算 SHAP 特征贡献的概述 假设你(玩家 1)和朋友(玩家 2)参加了一场 Kaggle 比赛,你最终赢得了 10,000 元的一等奖。现在,你想公平地分配这笔钱。你的朋友建议你平分。但是,你的超参数调整技能更出色。你相信你应该得到更大的份额,因为你为团队做出了更多贡献。考虑…

如何在Windows和Linux之间实现粘贴复制

第一步 sudo apt-get autorremove open-vm-tools第二步 sudo apt-get update第三步 sudo apt-get install open-vm-tools-desktop第四步 一直按Y&#xff0c;希望执行 Y第四步 重启 reboot然后可以实现粘贴复制。

MySQL连接查询解析与性能优化成本

文章目录 一、连接查询1.连接查询基础1. INNER JOIN内连接2. LEFT JOIN (或 LEFT OUTER JOIN)左外连接3. RIGHT JOIN (或 RIGHT OUTER JOIN)右外连接4. FULL OUTER JOIN 2.连接查询的两种过滤条件3.连接的原理 二、性能优化成本1.基于成本的优化2.调节成本常数(1)mysql.server_…

如何在Markdown写文章上传到wordpress保证图片不丢失

如何在Markdown写文章上传到wordpress保证图片不丢失 写文日期,2023-11-16 引文 众所周知markdown是一款nb的笔记软件&#xff0c;本篇文章讲解如何在markdown编写文件后上传至wordpress论坛。并且保证图片不丢失&#xff08;将图片上传至云端而非本地方法&#xff09; 一&…

WSL进阶体验:gnome-terminal启动指南与中文显示问题一网打尽

起因 我们都知道 wsl 启动后就死一个纯命令行终端&#xff0c;一直以来我都是使用纯命令行工具管理Linux的。今天看到网上有人在 wsl 中启动带图形界面的软件。没错&#xff0c;就是在wsl中启动带有图形界面的Linux软件。比如下面这个编辑器。 ​​ 出于好奇&#xff0c;我就…

Linux部署python web项目Flask + gunicorn + nginx

文章目录 一、安装python&使用虚拟环境二、python程序重要参数加密2.1 非对称加密&#xff08;RSA&#xff09;2.2 生成密钥对2.4 以连接数据库参数加密为例2.4.1 工具类RSA.py 三、一个简单的Flask项目四、安装配置gunicorn4.1 安装4.2 启动/配置(选择eventlet)4.2.1 命令…

vue打包exe之electron-quick-start的npm install 报错

vue打包exe之electron-quick-start的npm install 报错 1、github地址2、问题3、解决4、其他(打包exe)参考 1、github地址 https://github.com/electron/electron-quick-start2、问题 我使用的pnpm install正常安装&#xff0c;执行npm start提示错误 3、解决 在package.js…

【LLM多模态】文生视频综述From Sora What We Can See: A Survey of Text-to-Video Generation

note 现在很多主流的文生视频应该还是Diffusion-based 基于扩散模型的方法这篇综述将现有研究按照三个维度进行分类&#xff1a;进化生成器&#xff08;Evolutionary Generators&#xff09;、卓越追求&#xff08;Excellent Pursuit&#xff09;、现实全景&#xff08;Realis…

【学习笔记】MIPI

MIPI介绍 MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟&#xff0c;旨在把手机内部的接口如存储接口&#xff0c;显示接口&#xff0c;射频/基带接口等标准化&#xff0c;减少兼容性问题并简化设计。 MIPI联盟通过不同的工作组&#xff0c;分别定义一系列手机内部的接口标…

植物大战僵尸杂交版V2.5.1下载(最新版)

2.5.1版本更新公告&#xff1a; 在最新的2.5.1版本中&#xff0c;游戏对“两面夹击”关卡进行了多项重要调整。出怪倍率和种类均有所降低&#xff0c;部分关卡的初始阳光量也得到了调整&#xff0c;以增强玩家的策略性。同时&#xff0c;玩家可以在这些关卡中使用投手类植物&a…

sysbench 命令:跨平台的基准测试工具

一、命令简介 sysbench 是一个跨平台的基准测试工具&#xff0c;用于评估系统性能&#xff0c;包括 CPU、内存、文件 I/O、数据库等性能。 ‍ 比较同类测试工具 bench.sh 在上文 bench.sh&#xff1a;Linux 服务器基准测试中介绍了 bench.sh 一键测试脚本&#xff0c;它对…

RabbitMQ下载安装运行环境搭建

RabbitMQ运行环境搭建 1、Erlang及RabbitMQ安装版本的选择2、下载安装Erlang2.1、下载Erlang2.2、安装Erlang2.2.1、安装Erlang前先安装Linux依赖库2.2.2、解压Erlang压缩包文件2.2.3、配置2.2.4、编译2.2.5、安装2.2.6、验证erlang是否安装成功 3、RabbitMQ下载安装3.1、下载3…

FortiGate 无线组网

无线管理与配置 FortiAP 连接 internal 接口之后自动获得 ip 地址&#xff1a;192.168.1.xxx/24在 FortiGate 中创建 SSIDFortiGate 自动发现 FortiAP&#xff0c;将 FortiAP 添加到 FortiGate将 SSID 和 FortiAP 关联创建防火墙策略 下面我们就来一起看看在 FortiGate 中该如…