正如我刚才所说,这个程序不会编译。在我的IDE,TextPad中,它在createArray方法中给出了2个错误。它说在我的回复声明中,当我确实将它们放在那里时,可以预期右括号和分号。有人可以帮助我吗?
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];
}
答案 0 :(得分:7)
您错过了该类的封闭}
,但我认为其中一个是复制粘贴问题。
我看到的实际问题是你想要
return new int[size];
而不是
return int[size];
在createArray
函数中。
答案 1 :(得分:1)
我在这里看到一个额外的小肠:
while(!validInput);
{
return result;
}
更新:我注意到这实际上是一段时间,为什么围绕返回声明的额外括号呢?
答案 2 :(得分:0)
在return result;
之后移除大括号,因为它是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;