请问一下这段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");