我一直在研究一个应该输出赛车的获胜状态的程序。我认为我已经正确设置了所有内容,并且上周在课堂上遵循了我的导师大纲。但是,这样做我无法打印输出。我的想法是我可能陷入困境,但我真的不知道如何摆脱困境。我现在已经工作了四个小时,并且搜索了低至高的答案但无济于事。编译时没有错误,所以我不确定问题是什么。
import java.util.*;
import java.math.*;
public class Assignment2{
public static void main(String args[]){
}
int r, cart, value;
public void race(){ //generates random number to assign value to cart
Random ran = new Random();
int r = ran.nextInt(0) + 6;
value = r;
}
public int getValue(){ //assigns value to carts
return value;
}
public void display(){ //sys.out to print results
race();
if (value == 5){
System.out.println("______");
System.out.println("|____| Winning Status = 5");
System.out.println(" o o");
}
else if(value == 4){
System.out.println("______");
System.out.println("|____| Winning Status = 4");
System.out.println(" o o");
}
else if(value == 3){
System.out.println("______");
System.out.println("|____| Winning Status = 3");
System.out.println(" o o");
}
else if(value == 2){
System.out.println("______");
System.out.println("|____| Winning Status = 2");
System.out.println(" o o");
}
else if(value == 1){
System.out.println("______");
System.out.println("|____| Winning Status = 1");
System.out.println(" o o YOU'RE FIRST! CONGRATS!");
}
}
}
答案 0 :(得分:2)
main()
方法中没有任何内容,因此实际上没有执行任何内容。也许你的意思是:
public static void main(String args[]) {
(new Assignment2()).display();
}
由于您的代码现在存在,您应该取消r
(未使用)并更改以下内容:
// int r = ran.nextInt(0) + 6;
value = ran.nextInt(5) + 1;
答案 1 :(得分:1)
int r = ran.nextInt(0) + 6;
和value = r
意味着value
至少为6.因此,您不会遇到任何条件。试试if (value >= 5)
,你会看到相应的消息。
更好的是,尝试int r = ran.nextInt(5) + 1;
获取1到5之间的值。
答案 2 :(得分:0)
您的main
方法不包含任何代码。这就是你的程序什么都不做的原因。将其更改为:
public static void main (String[] args)
{
Assignment2 as = new Assignment2();
as.display();
}
答案 3 :(得分:0)
这是因为你在race()
的本地范围内初始化了r。
答案 4 :(得分:0)
程序在main()
方法中开始执行,因此,如果您的示例中没有代码,main()
中的代码将完成该方法,然后终止。
在您的程序中,您似乎正在尝试使用display()
。要使用它,首先需要一个类Assignment2的实例。
这将创建一个名为Ass2的类的实例,名为a2
Assignment2 a2 = new Assignment2();
然后,您可以使用我们命名为a2的对象来调用任何方法。我在这里打电话给display()
a2.display();
答案 5 :(得分:0)
在此int r = ran.nextInt(n) + 6;
n
必须为正数,否则您将获得IllegalArgumentException
,在您的情况下为0。
正如Thomos建议你应该使用value = ran.nextInt(5) + 1;
获取1到5之间的值,它会正常工作。按照javadoc Random.nextInt(int)更好地理解它。
答案 6 :(得分:0)
公寓,你必须做这个改变
public static void race(){ //generates random number to assign value to cart
Random ran = new Random();
int r = ran.nextInt(5) + 1;
value=r;
}
public static void main(String args[]){
display();
}
我将所有方法切换为“静态”;