Bootstrap

第一节 Java中的For循环到底多强大?从基础到高级让你彻底搞懂!

在 Java 编程中,for 循环 是一个“平凡又伟大”的存在!🔄 它简单、易用,却是编程中最不可或缺的工具之一。

但对于 Java 初学者来说,for 循环的语法和用法常常让人一头雾水 🤯。

什么是 for 循环?它到底可以用来做什么?🔥 基本的循环、嵌套循环、带标签的循环、增强型循环……这些看似复杂的概念,其实和你的日常开发(甚至是毕业设计💼)息息相关!

那么,如何快速掌握 for 循环,并高效写出优雅代码呢?

别担心!😎 这篇文章将通过 通俗易懂的讲解实用代码示例,带你逐步拆解 for 循环的秘密,彻底搞懂它的用法!🚀

重点来了文章末尾还有超值福利大放送!🎁 不仅有实用的代码模板,还包含助力毕业设计的独家技巧!快往下看,千万别错过哦~✨📚

Java 中有多种循环语句,其中之一是 for 循环。for 循环用于重复执行一组语句,直到指定的条件为 false 为止。

它提供了一种紧凑的方法来初始化循环变量、检查条件并更新循环变量。当我们提前知道需要执行多少次时,它特别有用。

一.for 循环的结构

for 循环的语法

for (初始化; 条件; 步进) {
    // 代码块
}
  • 初始化: 在循环开始时执行一次,通常用于声明和初始化循环控制变量。
  • 条件: 在每次迭代之前,检查这个条件。如果条件为 true,循环继续;如果为 false,循环结束。
  • 步进: 每次迭代后执行,通常用于增加或减少循环控制变量。

初始化、条件 和 步进 都是可以不写的,但是两个;不能省略

二.基本的 for 循环示例

下面我们编写一个 Java 程序,使用 for 循环打印从 1 到 5 的数字:

示例代码:

public class ForLoopExample {
    public static void main(String[] args) {
        // 初始化 i 为 1,条件是 i 小于等于 5,每次迭代后 i 增加 1
        for (int i = 1; i <= 5; i++) {
            // 打印当前的 i 值
            System.out.println(i);
        }
    }
}
  1. int i = 1 是初始化,循环变量从 1 开始计数。
  2. i
  3. i++ 是步进,在每次迭代后将 i 增加 1。

输出结果:

1
2
3
4
5

上述for循环代码的执行过程可以用如下图所示

三.for 循环高级部分

Java 的 for 循环功能多样,可以以多种形式使用,以适应不同的场景

3.1 带标签的 for 循环

Java 提供了一种带标签的循环,特别适用于嵌套循环的场景,在内部循环中可以通过标签退出外部循环。

标签是一个紧接着冒号 (:) 的标识符,放在循环语句之前,可以在 break 或 continue 语句中引用,从而更精确地控制程序的执行流程。

示例代码:

outerLoop: // 定义外部循环的标签
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        // 如果 i * j 的值大于 6,打印信息并退出外部循环
        if (i * j > 6) {
            System.out.println("Breaking at i=" + i + ", j=" + j);
            break outerLoop; // 跳出外部循环
        }
    }
}

在这个示例中,outerLoop 标签与外层的 for 循环相关联。当内层循环中条件 i * j > 6 满足时,break outerLoop 语句会终止外层循环,而不仅仅是内层循环。这个功能增加了控制的灵活性,允许你一次性退出多个循环,特别适用于简单退出当前循环不足以满足需求的复杂循环场景。

输出结果:

Breaking at i=2, j=4

3.2 在 for 循环中使用两个变量

for 循环可以使用多个变量,适用于同时迭代或复杂条件的情况。

例如,检查字符串是否为回文:

// 导入 Scanner 类,用于获取用户输入
import java.util.Scanner;

// 定义一个公共类 StringUsingHalfLoop
public class StringUsingHalfLoop {
    // 主方法,程序的入口
    public static void main(String[] args) {
        // 创建一个 Scanner 对象,用于从控制台获取输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一个字符串
        System.out.print("请输入一个字符串 : ");

        // 使用 scanner 接收用户输入的字符串
        String str = scanner.nextLine();

        // 调用 isPalindrome 方法判断字符串是否是回文
        boolean isPalin = isPalindrome(str);

        // 如果返回值为 true,输出“字符串是回文”
        if (isPalin)
            System.out.println("字符串是回文");
        // 如果返回值为 false,输出“字符串不是回文”
        else
            System.out.println("字符串是回文");
    }

    // 定义一个静态方法 isPalindrome,用于判断字符串是否是回文
    static boolean isPalindrome(String str) {
        // 使用两个变量 i 和 j,一个从字符串的开头开始,一个从末尾开始
        for (int i = 0, j = str.length() - 1; i < str.length() / 2; i++, j--) {
            // 比较两个字符,如果不相等,立即返回 false,表示不是回文
            if (str.charAt(i) != str.charAt(j)) {
                return false;
            }
        }
        // 如果循环结束且所有字符都匹配,返回 true,表示是回文
        return true;
    }
}

输入输出示例:

输入:madam

输出:字符串是回文

输入:adam

输出:字符串不是回文

3.3 无限循环

无限循环(infinite for loop)会无限运行下去,直到被外部强制停止。它在某些需要任务持续运行的场景中非常有用,比如服务器进程或事件监听器等。

语法如下:

for (;;) {
    // 无限循环的代码块
}

在使用 for 循环时,必须谨慎设置条件,否则可能会导致创建一个无限循环。

例如,假设你想打印从 10 到 1 的数字,可以使用以下代码:

public class ForLoopMain {
    public static void main(String[] args) {
        // 初始化 i 为 10,每次迭代后 i 减少 1
        for (int i = 10; i > 0; i--) {
            // 打印当前的 i 值
            System.out.print(" " + i);
        }
    }
}

输出结果:

10 9 8 7 6 5 4 3 2 1

在上述代码中,如果将 i-- 替换为 i++,循环将进入无限循环状态。


public class ForLoopMain {
    public static void main(String[] args) {

        for (int i = 10; i >0; i++) {
            System.out.print(" "+i);
        }
    }
}

3.4 增强型 for 循环(for-each 循环)

增强型 for 循环(也称为 “for-each” 循环)从 Java 5 中引入,非常适合用于遍历数组或集合。它不需要显式的计数器或迭代器变量,从而使代码更简洁且更少出错。该循环非常优雅,可以在无需明确索引的情况下读取集合中的每个元素。

增强for循环语法如下:


for (Type var : arrayOrCollection) {
    // Statements using var
}

例如,假设我们有一个整数数组,希望打印出每个元素:

int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
    // 遍历数组中的每个元素
    System.out.println(number);
}

这个增强型 for 循环可以理解为:“对于数组 `numbers` 中的每个整数 `number`,打印 `number` 的值”。这个循环会遍历数组 numbers 中的每个元素,依次将每个元素赋值给变量 number,然后执行循环体中的代码。上述代码输出结果如下:

1
2
3
4
5

如果给定一个 List 类型的对象 listOfStrings,我们可以按如下方式进行遍历:


for (String element : listOfStrings) {
    System.out.println(element);
}

四.实践练习

让我们通过编写一个程序来应用所学的 for 循环知识。

给定一个整数数组,例如 {32, 45, 53, 65, 43, 23},你的任务是从这个数组中搜索一个特定的元素。如果该元素存在,程序应该输出 “PRESENT”;如果不存在,程序应该输出 “NOT PRESENT”。

我建议你先尝试自己编写这个程序,然后再参考下面的代码:

// 定义一个公共类 ForStatementExample
public class ForStatementExample {

    // 主方法,程序的入口
    public static void main(String[] args) {
        // 创建 ForStatementExample 类的对象
        ForStatementExample bse = new ForStatementExample();

        // 定义一个整数数组
        int arr[] = {32, 45, 53, 65, 43, 23};

        // 调用 findElementInArr 方法查找数组中的元素 53,并打印结果
        System.out.println(bse.findElementInArr(arr, 53));
    }

    // 定义一个方法,用于在数组中查找指定的元素
    // @param arr 要查找的整数数组
    // @param elementTobeFound 要查找的目标元素
    // @return 如果找到元素,返回 "PRESENT";如果未找到,返回 "NOT PRESENT"
    public String findElementInArr(int arr[], int elementTobeFound) {
        // 使用 for 循环遍历数组
        for (int i = 0; i < arr.length; i++) {
            // 如果当前元素等于目标元素
            if (arr[i] == elementTobeFound) {
                // 打印找到的元素信息
                System.out.println(elementTobeFound + " is present in the array");
                // 返回 "PRESENT",表示元素存在
                return "PRESENT";
            }
        }
        // 如果遍历结束仍未找到目标元素,返回 "NOT PRESENT"
        return "NOT PRESENT";
    }
}

输出结果:

53 is present in the array
PRESENT

五.总结

for 循环是 Java 中功能强大的控制流语句,可以实现简洁、高效的代码迭代。不论是遍历数组、集合,还是嵌套循环,理解并熟练使用 for 循环都能使你的程序更高效、易读。

六.超级福利

超值福利来了!🎉(资料整理不易,同学们给一键三连哦!)

为了帮助大家更好地学习和实践 Java 编程,特别为你准备了一份超实用的学习资源!🎁

这是一份完整的作品——“SpringBoot+Vue实现的仿小米电子产品售卖商城系统”源码,不仅包含详细的 讲解视频教程 开发文档,还附赠了 参考论文,让你在毕业设计或实际的项目开发中更加得心应手!💼✨

这个作品将带你从前端到后端,深入了解项目开发的流程,掌握实用的开发技能,帮助你把 Java 的知识真正学以致用!其中,还会教你怎么把系统对接到支付宝,实现整个支付流程

获取方式非常简单!👇只需在评论区留言或者私信我,也可以加我微信:RJ_xiaohui,告诉我你对学习 Java 或完成毕业设计的困惑和需求,我将第一时间与你联系,为你答疑结果,分享这份珍贵的资源!

还等什么?抓住这个机会,轻松提升编程能力,让你的学习和项目更进一步!🚀 快来领取吧! 🌟

记得 点赞👍、关注⭐、收藏📂,方便以后随时复习!

6.1.项目介绍

项目描述:这是一个基于SpringBoot+Vue框架开发的仿小米电子产品售卖商城系统。首先,这是一个前后端分离的项目,代码简洁规范,注释说明详细,易于理解和学习。其次,这项目功能丰富,具有一个电子产品售卖商城系统该有的所有功能。

项目功能:此项目分为两个角色:普通用户和管理员。普通用户有登录注册、浏览商品信息、添加购物车、结算订单、查看个人信息、查看个人订单详情等等功能。管理员有管理所有商品信息、管理所有订单信息、管理所有用户信息、查看收益数据图表等等功能。

应用技术:SpringBoot + Vue + MySQL + MyBatis + Redis + ElementUI + 沙箱支付宝

运行环境:IntelliJ IDEA2019.3.5(项目压缩包中自带) + MySQL5.7(项目压缩包中自带) + Redis5.0.5(项目压缩包中自带) + JDK1.8 + Maven3.6.3(项目压缩包中自带)+ Node14.16.1(项目压缩包中自带)

6.2.项目运行截图:

.超级福利再次分享

超值福利来了!🎉(资料整理不易,同学们给一键三连哦!)

为了帮助大家更好地学习和实践 Java 编程,特别为你准备了一份超实用的学习资源!🎁

这是一份完整的作品——“SpringBoot+Vue实现的仿小米电子产品售卖商城系统”源码,不仅包含详细的 讲解视频教程 开发文档,还附赠了 参考论文,让你在毕业设计或实际的项目开发中更加得心应手!💼✨

这个作品将带你从前端到后端,深入了解项目开发的流程,掌握实用的开发技能,帮助你把 Java 的知识真正学以致用!其中,还会教你怎么把系统对接到支付宝,实现整个支付流程

获取方式非常简单!👇只需在评论区留言或者私信我,也可以加我微信:RJ_xiaohui,告诉我你对学习 Java 或完成毕业设计的困惑和需求,我将第一时间与你联系,为你答疑结果,分享这份珍贵的资源!

还等什么?抓住这个机会,轻松提升编程能力,让你的学习和项目更进一步!🚀 快来领取吧! 🌟

记得 点赞👍、关注⭐、收藏📂,方便以后随时复习!

;