我似乎无法找到的一个奇怪的错误

I'm*_*too 2 java

我想要做的是我有一个读取数字的程序,该数字表示有多少单词,例如:

3 
red 
blue
green
Run Code Online (Sandbox Code Playgroud)

然后以相反的顺序打印出相同的文本,这样就可以了

green 
blue 
red
Run Code Online (Sandbox Code Playgroud)

然后是一个空行,向服务器指示您已完成该特定问题.但我似乎在我的代码中有一个错误.

我试图将单词存储在数组列表中.我使用for循环将它们存储在列表中,然后以相反的顺序打印出来,我只是以相反的方式使用另一个循环,从列表的末尾开始到开头.

当我从命令提示符运行程序时,它只是进入下一个命令提示行,就像我编译程序一样,没有错误但是当我做了测试时,使用我创建的测试程序,似乎程序读取数字,然后去打印出一个空白数组.

似乎来自服务器的单词不会存储在数组中,我不确定我做错了什么.我不是最伟大的程序员,所以任何帮助都会非常感激.

代码:

import java.io.*;
import java.util.*;

public class Solution
{
    public static void run(BufferedReader in, PrintWriter out)
        throws IOException
    {
        int x = Integer.parseInt(in.readLine());

        while(x != 0)
        {
            ArrayList num  = new ArrayList();

            for(int i = 0; i < num.size(); i++)
            {
                //String f = in.readLine();
                num.add(in.readLine());
            }
            //System.out.println(num);

            for(int i = num.size()-1; i > 0; i--)
            {
                out.println(num.get(i));

                //x = Integer.parseInt(in.readLine());
                System.out.println();
            }
            break;
        }
        out.flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 9

ArrayList num  = new ArrayList();

for(int i = 0; i < num.size(); i++)
Run Code Online (Sandbox Code Playgroud)

意味着你从0到... 0!

for(int i = 0; i < x; i++)
Run Code Online (Sandbox Code Playgroud)

会更好.