Java for循环,在第二个条件中使用相等运算符

Java for循环,在第二个条件中使用相等运算符,java,arrays,Java,Arrays,我正在尝试以相反的顺序打印数组 代码如下: import java.util.Scanner; public class Main { public static void main(String []argh) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] arr = new int[n]; for (int i = 0; i &

我正在尝试以相反的顺序打印数组

代码如下:

import java.util.Scanner;

public class Main {

    public static void main(String []argh) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = in.nextInt();

        }

        for (int j = n-1 ; j == 0; j--) {
            System.out.print(arr[j] + " ");
        }
        in.close();
    }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]argh){
扫描仪输入=新扫描仪(系统输入);
int n=in.nextInt();
int[]arr=新的int[n];
对于(int i=0;i

在这段代码中,什么也没有发生,但是当我将第二个for循环中的第二个条件从
j==0
更改为
j>=0
时,它工作了。我不明白为什么。在
j==0
中,这不是应该递减
j
直到它等于
0

对于(int j=n-1;j==0;j-)
意味着只要
j
等于
0
,循环就会执行。由于
j
被初始化为
n-1
,因此循环永远不会执行(假设n!=1)。

for(int j=n-1;j==0;j--)
意味着只要
j
等于
0
,循环就会执行。由于
j
被初始化为
n-1
,因此循环永远不会执行(假设n!=1)。

循环的
的第二个参数是循环条件:它指定循环体将在何种条件下执行。当条件为真时,主体将执行,,直到它为真

注意你的第一个
for
循环是如何工作的:
i
0
开始,在
i
时循环。第二个循环中的原理相同,只有循环变量朝相反的方向移动:
j
n-1
开始,当
j>=0
时应该循环


Java中的所有条件循环(
while
for
do while
)都是这样工作的:它们只在条件保持时循环,然后终止,循环后执行开始。

循环的
的第二个参数是循环条件:它指定循环体将在什么条件下执行。当条件为真时,主体将执行,,直到它为真

注意你的第一个
for
循环是如何工作的:
i
0
开始,在
i
时循环。第二个循环中的原理相同,只有循环变量朝相反的方向移动:
j
n-1
开始,当
j>=0
时应该循环


Java中的所有条件循环(
while
for
,以及
do while
)都是这样工作的:它们只在条件保持时循环,然后终止,循环后执行开始。

j==0
中,条件将为false,因为j被赋予一个等于n-1的值,
j=n-1

假设n的值是3,那么j将等于2,然后它将进入for循环中的条件检查部分,在这部分中,你像这样写的
j==0
,因为j不等于2,所以条件将为false,它将退出for循环。

j==0
中,条件将为false,因为给j一个等于n-1的值,
j=n-1

假设n的值为3,那么j将等于2,然后它将进入for循环中的条件检查部分,在这部分中,您像这样编写
j==0
,因为j不等于2,所以条件将为false,它将退出for循环。

在您的第一个循环中,您希望它递增
i
直到
i
小于
n
,还是直到它停止小于
n
?对第二个循环应用相同的逻辑。在第一个循环中,您希望它递增
i
,直到
i
小于
n
,还是直到它停止小于
n
?对第二个循环应用相同的逻辑。