📜  Java中的循环的重要事项

📅  最后修改于: 2020-02-12 15:14:19             🧑  作者: Mango

先决条件:Java中的循环
for循环的基本结构:

for(initialization; boolean expression; update statement)
{
    //内部语句
}

让我们看一下使用for循环的一些基本示例,以及使用for循环的常见陷阱
1,必须在for循环中提供表达式: For循环必须在循环语句中包含一个有效的表达式,否则将导致无限循环。该声明

for ( ; ; )
is similar to
while(true)

例子:

// Java程序展示无限循环
public class Example1
{
    public static void main(String[] args)
    {
        for( ; ; )
        {
            System.out.println("这是一个无限循环");
        }
    }
}

输出:此代码重复打印语句“ 这是一个无限循环”。
 
2,初始化多个变量:在Java中,无论是否在循环中使用它,都可以在for循环的初始化块中初始化多个变量。

// Java展示在for的初始化模块中初始化多给变量
public class Example2
{
    public static void main(String[] args)
    {
        int x = 2;
        for(long y = 0, z = 4; x < 10 && y < 10; x++, y++)
        {
            System.out.println(y + " ");
        }
        System.out.println(x);
    }
}

在上面的代码中,for循环有简单的变化,在初始化块中声明并初始化了两个变量。我们没有使用变量“ z”。另外,其他两个组件包含额外的变量。因此,可以看出,这些块可以包括可能互不引用的额外变量。
 
3,在初始化块中重新声明变量:假设初始化变量已经声明为整数。我们可以在for循环中与其他数据类型一起重新声明它吗?不行。请参见示例:

// Java代码,展示重新声明的例子
public class Example3
{
    public static void main(String[] args)
    {
        // x是整数
        int x = 0;
        // 重新声明x是long类型
        for(long y = 0, x = 1; x < 5; x++)
        {
            System.out.print(x + " ");
        }
    }
}

便衣报错:

Example3.Java:12: error: variable x is already defined in method main(String[])
        for(long y = 0, x = 1; x < 5; x++)

在此,x已被初始化为零(作为整数),并在循环中使用数据类型long进行了重新声明,编译就报错了。
但是可以通过稍微修改代码来解决此问题。在这里,变量x和y以不同的方式声明。

// Java例子,重新声明变量
public class Example3
{
    public static void main(String[] args)
    {
        // x是一个整数
        int x = 0;
        long y = 10;
        for (y = 0, x = 1; x < 5; x++)
        {
            System.out.print(x + " ");
        }
    }
}

输出:

1 2 3 4

4,在初始化块中声明的变量必须具有相同的类型:当我们声明一个变量为

int x, y;

这两个变量是同一类型。for循环初始化块也是如此。

// Java程序展示初始化两个变量
public class Example4
{
    public static void main(String[] args)
    {
        // 解注释如下将会报错
        // int x;
        // 重新声明x为long会报错
        for (long y = 0, x = 1; x < 5; x++)
        {
            System.out.print(x + " ");
        }
    }
}

5,循环中的变量只能在以下位置访问:在初始化块中声明的变量只能在循环中访问。有关变量范围的更多信息,请参见此处

// Java展示循环中变量的范围
public class Example5
{
    public static void main(String[] args)
    {
        // x和y的范围,只在for循环内部
        for(int x = 0, y = 0; x < 3 && y < 3; x++, y++)
        {
            System.out.println(y + " ");
        }
        System.out.println(x);
    }
}

错误

Example5.Java:13: error: cannot find symbol
        System.out.println(x);

在上面的示例中,变量x在循环外部不可访问。语句‘System.out.println(x); ’会导致编译器错误。