私藏!Java中for循环语句的用法详解

一、语法

for循环的基本语法如下:

for(①.声明并初始化循环变量;②.判断循环条件;④.改变循环变量值){

//③.循环体
}

语法说明:

1.for循环最先执行初始化步骤。在这里可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句;
2.判断循环条件,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。且for循环的执行次数在执行前就已经是确定的。
3.执行一次循环后,就会更新一次循环控制变量的值;
4.再次检测布尔表达式,循环执行上面的过程。

二、执行流程

根据上面的for循环语法,壹哥把for循环的执行流程给大家做个详细的解释:

1.首先我们要在第①步声明并初始化一个变量,该操作在循环中只会执行一次;
2.每次循环之前,在第②步判断循环条件是否成立,只有当条件为true才会执行,如果条件为false则结束循环;
3.每次循环时,都会在③中执行循环体内的代码;
4.每次循环结束后,会自动执行第④部分,改变变量的初始值;
5.for循环中①、②、④部分都可以省略不写,但必须存在两个”分号;“,也可以只写一部分;
6.我们声明变量类型时,不一定非得是int,最后改变初始值也不一定非得是++;
7.for循环中支持嵌套循环。

根据上面的步骤,壹哥把重点步骤给大家总结如下:

①-->②-->③-->④-->②-->③-->④-->②-->③-->④-.....-②

如下图所示:

三、for循环的几种写法

3.1 基本for循环

基本for循环包括三个部分:循环变量初始化、循环条件判断和循环变量更新。通常的形式如下:

for (int i = 0; i < n; i++) {
// 循环体
}

其中,i 是循环变量,n 是循环次数,循环体是需要重复执行的代码。

3.2 foreach循环

foreach循环通常用于遍历数组或集合中的元素。它的语法形式为:

for (类型 变量名 : 数组名) {
// 循环体
}

其中,类型 是数组或集合中元素的数据类型,变量名 是循环变量的名称,数组名 是需要遍历的数组或集合的名称。循环体是需要重复执行的代码。

例如,遍历一个整型数组的方式如下:

int[] nums = {1, 2, 3, 4, 5};
for (int num : nums) {
System.out.println(num);
}

3.3 while循环

while循环会在满足循环条件时重复执行代码块。它的语法形式为:

while (循环条件) {
// 循环体
}

其中,循环条件 是需要满足的条件,循环体是需要重复执行的代码。

例如,一个简单的while循环如下所示:

int i = 0;
while (i < 10) {
System.out.println(i);
}

这个while循环会不断地打印变量i的值,直到i的值达到10为止。

3.4 do-while循环

do-while循环与while循环类似,但它会先执行一次循环体,然后再检查循环条件。它的语法形式为:

do {
// 循环体
} while (循环条件);

其中,循环体 是需要重复执行的代码,循环条件 是需要满足的条件。

例如,一个简单的do-while循环如下所示:

int i = 0;
System.out.println(i);
} while (i < 10);

这个do-while循环会先打印变量i的值为0,然后将i的值加1,并检查i是否小于10,如果满足则再次执行循环体。这个循环会执行10次,因为在第10次执行时,i的值为9,不再小于10。

3.5 简写形式

在for循行中,第①/②/④这几部分的内容都是可以省略简写的。

public class Demo02 {
public static void main(String[] args) {
    //简写形式1:在第一部分中简写变量的声明
    //int i = 0;
    //for (; i < 100; i++) {
    //	System.out.println("小白学java,i=" + i);
    //简写形式2:在第①和④中简写
    //int i = 0;
    //for ( ; i < 100; ) {
    //	i++;
    //	System.out.println("小白学java,i=" + i);
    //简写形式3,①/②/④都简写--->死循环
    int i = 0;
    for (;;) {
        System.out.println("小白学java,i=" + i);
}

我们一定要注意,如果是第三种简写形式,把①/②/④都简写了,就会成为死循环,本段程序会一直不停地打印下去。此时我们可以点击控制台的”红色“按钮停止程序的运行

四、for循环语句的用法

需求:循环输出100遍 ”小白学java“

public class ForDemo {
public static void main(String[] args) {
    //for循环,这里的i就是一个局部变量
    for( int i=0;  i<100;  i++) {
        System.out.println("小白学java,i="+i);
}

}

注意,上面for循环中定义的变量i就是一个局部变量哦!

需求:计算1-100的和,1+2+3+4+5+...+100

public class ForDemo02 {
public static void main(String[] args) {
    // 计算1-100的和,1+2+3+4+5+...+100
    //定义一个用于存储”和“的局部变量
    int sum = 0;
    for (int i = 1; i <= 100; i++) {
        // i = 1;
        // sum=0+1;
        // i = 2;
        // sum= 1+2;
        sum = sum + i;
    System.out.println("sum=" + sum);
}

}

需求:打印出一个三角形,用“*”来表示。

public class ForDemo03 {
public static void main(String[] args) {
    // for循环嵌套--打印出一个三角形,用“*”来表示
    for (int i = 1; i <= 5; i++) {
        //定义第2个局部变量j,j设置为<=i
        for (int j = 1; j <= i; j++) {
            //这里千万不要换行哦
            System.out.print(" * ");
        //这里一定要换行哦
        System.out.println();


需求:使用for循环产生20个1-100的随机数,且这20个数互不相同:

import java.util.Random;
public class ForDemo03 {
public static void main(String[] args) {
int[] randomNumbers = new int[20];
Random random = new Random();
    for (int i = 0; i < randomNumbers.length; i++) {
        int newNumber;
        boolean numberExists;
            newNumber = random.nextInt(100) + 1;
            numberExists = false;
            for (int j = 0; j < i; j++) {
                if (randomNumbers[j] == newNumber) {
                    numberExists = true;
                    break;
        } while (numberExists);
        randomNumbers[i] = newNumber;
        System.out.println(randomNumbers[i]);
}

注意:在上面的代码中,我们使用了一个do-while循环,每次生成一个新的随机数并检查它是否已经存在于数组中。如果已经存在,则继续生成新的随机数,直到找到一个不存在于数组中的随机数。然后将该随机数存储在数组中,并输出到控制台。

需求:打印出九九乘法表。

public class Demo02 {
public static void main(String[] args) {
    // for循环嵌套--打印出一个三角形,用“*”来表示
    for (int i = 1; i <= 5; i++) {
        //定义第2个局部变量j,j设置为<=i
        for (int j = 1; j <= i; j++) {
            //这里千万不要换行哦
            System.out.print(" * ");