两个for循环,下一个for的变量不能是上一个for的变量?

不太懂为什么?

import java.util.Scanner;

public class B1022 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int A = in.nextInt();
        int B = in.nextInt();
        int P = in.nextInt();
        int C = A + B;
        int []numD = new int[100];


        while(C != 0)
        {
            for (int i = 0; i < 100; i++)
            {
                numD[i++] = C % P;
                C = C / P;              
            }           
        }
         /*如何把未知长度的数组倒着输出*/
        for (int x = i - 1; x >= 0; x--)   /*error: i cannot be a variable*/
        {
            System.out.print(numD[x]);
        }       
        in.close();
    }

}


括号{}标记了变量i的作用域,超出作用域之后就不能被解析器识别。

import java.util.Scanner;

public class B1022 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
int B = in.nextInt();
int P = in.nextInt();
int C = A + B;
int []numD = new int[100];

    while(C != 0)
    {
        for (int i = 0; i < 100; i++)
        {
            numD[i++] = C % P;
            C = C / P;              
        }           
    }
     /*如何把未知长度的数组倒着输出*/
    for (int x = 100 - 1; x >= 0; x--)   /*error: i cannot be a variable*/
    {
        System.out.print(numD[x]);
    }       
    in.close();
}

我觉得你可以在上面的for循环定义一个count次数,这样你就可以循环了多少次,数组的长度就有了。

我觉得你可以在上面的for循环定义一个count次数,这样你就可以循环了多少次,数组的长度就有了。

我觉得在第一个for循环可以定义一个count次数,这样数组的长度就有了。

这是一个 作用域的问题,你可以在看下 相关资料。每个变量的作用域。

外循环循环的是内循环,当外循环循环一次,内循环循环完所有的次数,外循环循环几次,内循环就把所有的循环循环几次,就想秒针走六十个小格分针才走一格,分针就等于外循环,秒针就是内循环

我都佩服自己完美的解释