请问一下这段JAVA代码怎么编译不能通过

来源:百度知道 编辑:UC知道 时间:2024/06/12 06:37:25
如下所示代码,请问为什么就是编译通不过呢?

import java.util.Vector;
public class GuessingGame
{
private int t,r;
private Vector v;

public GuessingGame(int input)
{
this.t = input;
Vector v = new Vector(100,25);

}
public int random()
{
this.r = (int)(Math.random() * 100 + 1) ;
return r;

}

public void startGuessing()
{
{do
{
this.random();
//Object in = new Integer(r);
Integer in = null;
in = new Integer(r);

v.add(0,in);
}
while (t != r);}

System.out.println("Guessing the result, the result is " + r);

}

public void printGuesses()
{
if (t == r)
{
for (int i = 0;i < v.size();i++)
{
Integer n = (Integer)v.get(i);
System.out.println(n.intValue());
}
}
else
System.out

编译可以通过的。

在运行前本代码需要设置一个应用程序参数,设置方法如下:
右键Run As ---> Open Run Dialog...--->Java Application--->右键New
--->Arguments--->Program aguments--->填入数字,如1

在程序内部通过main中args取得.

【补充】那个已经编译过去了,只是警告信息而已。楼主使用的是jdk1.5以上的编译器吧,类型检查警告是可以不用去理会的。或者你也可以使用
private int t, r;
private Vector<Integer> v;

public GuessingGame(int input)
{
this.t = input;
this.v = new Vector<Integer>(100, 25);

}

然后你再运行:
javac GuessingGame.java
java GuessingGame 1

编译出错的原因是数组越界,是因为程序一执行上来args这个数组没有任何值,是null所以在Integer.parseInt(args[0]);
里取值的时候就会报错

public GuessingGame(int input)
{
this.t = input;
Vector v = new Vector(100,25);
}
中的Vector去掉,改为v = new Vector(100,25);
再在main方法中的开头加一条语句:
if(args.length==0){
System.out.println("请输入参数:like 'java GuessingGame 12");