我的Java程序无法编译

我的Java程序无法编译,java,arrays,compilation,Java,Arrays,Compilation,正如我刚才所说,这个程序不会编译。在我的IDE TextPad中,createArray方法中有两个错误。它说当我的return语句中确实有右括号和分号时,它们都应该出现在return语句中。有人能帮我吗 public class Driver { private static int size; private static String somePromptMessage; private static boolean validInput; private

正如我刚才所说,这个程序不会编译。在我的IDE TextPad中,createArray方法中有两个错误。它说当我的return语句中确实有右括号和分号时,它们都应该出现在return语句中。有人能帮我吗

public class Driver
{
    private static int size;
    private static String somePromptMessage;
    private static boolean validInput;
    private static String userData;
    public static void main(String[] args) throws IOException
    {
        validInput = false;
        BufferedReader keyboard;
        keyboard = new BufferedReader(new InputStreamReader(System.in));
        int result;
        do
        {
            somePromptMessage = "Enter an integer";
            System.out.println(somePromptMessage);
            String userData;
            userData = keyboard.readLine();
            System.out.println(createArray(10));
            try
            {
                result = Integer.parseInt(userData);
            }
            catch(NumberFormatException nfe)
            {
            System.out.println("Value entered is invalid, try again");
            }
        }
        while(!validInput);
        {
            return result;
        }

    }

    public static void print(int[]x)
    {
        System.out.println("The array contains" + size + "elements");
        for(int i = 0; i<x.length; i++)
        {
            System.out.println(x[i]);
        }
    }

    private static int[] createArray(int size)
    {
        return int[size];
    }

您缺少类的封闭},但我假设其中一个是复制粘贴问题

我看到的实际问题是你想要

return new int[size];
而不是

return int[size];

在createArray函数中。

我在这里看到一个额外的半冒号:

while(!validInput);
{
        return result;
 }

更新:我注意到这实际上是一个dowhile,那么为什么在return语句周围加上大括号呢?

在返回结果的while之后去掉大括号;正如它所做的那样:


你忘了类末尾的结束括号了吗?我确实在那里,它只是没有进入到这段代码中,因为我有另一个方法,我现在已经注释掉了。看起来分号是因为while是do-while的一部分,但这也引出了一个问题,为什么返回结果用大括号表示。这是正确的,丹尼斯。我知道while和do while的返回不一定要用大括号,因为它只有一行,但我只是把它们放在那里。你应该把它们取下来。把它们放在括号里是没有意义的,那只会让人困惑是的,这个封闭大括号是一个复制粘贴问题,因为我在这个类中有另一个方法,但是现在没有包括它,因为我已经暂时注释掉了它。
do
{
    somePromptMessage = "Enter an integer";
    System.out.println(somePromptMessage);
    String userData;
    userData = keyboard.readLine();
    System.out.println(createArray(10));
    try
    {
        result = Integer.parseInt(userData);
    }
    catch(NumberFormatException nfe)
    {
        System.out.println("Value entered is invalid, try again");
    }
}
while(!validInput);
return result;