Java 输出赢得';因为某种原因我不能打印
我一直在开发一个程序,该程序应该输出赛车的获胜状态。我以为我把一切都安排好了,并在上周的课堂上按照我的老师的提纲做了。但是,这样做时,我无法打印输出。我的想法是,我可能陷入了一个循环,但我真的不知道如何摆脱它。我已经花了四个小时来研究这个问题,一直在寻找各种各样的答案,但都无济于事。我在编译时没有遇到错误,所以我不确定问题出在哪里Java 输出赢得';因为某种原因我不能打印,java,loops,printing,println,Java,Loops,Printing,Println,我一直在开发一个程序,该程序应该输出赛车的获胜状态。我以为我把一切都安排好了,并在上周的课堂上按照我的老师的提纲做了。但是,这样做时,我无法打印输出。我的想法是,我可能陷入了一个循环,但我真的不知道如何摆脱它。我已经花了四个小时来研究这个问题,一直在寻找各种各样的答案,但都无济于事。我在编译时没有遇到错误,所以我不确定问题出在哪里 import java.util.*; import java.math.*; public class Assignment2{ public static v
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!");
}
}
}
您的
main
方法不包含任何代码。这就是为什么你的程序什么都不做。将其更改为:
public static void main (String[] args)
{
Assignment2 as = new Assignment2();
as.display();
}
您的
main
方法不包含任何代码。这就是为什么你的程序什么都不做。将其更改为:
public static void main (String[] args)
{
Assignment2 as = new Assignment2();
as.display();
}
main()
方法中没有任何内容,因此实际上没有执行任何内容。也许你的意思是:
public static void main(String args[]) {
(new Assignment2()).display();
}
由于您的代码现在已经存在,您应该删除r
(它未使用),并更改以下内容:
// int r = ran.nextInt(0) + 6;
value = ran.nextInt(5) + 1;
main()
方法中没有任何内容,因此实际上没有执行任何内容。也许你的意思是:
public static void main(String args[]) {
(new Assignment2()).display();
}
由于您的代码现在已经存在,您应该删除r
(它未使用),并更改以下内容:
// int r = ran.nextInt(0) + 6;
value = ran.nextInt(5) + 1;
intr=ran.nextInt(0)+6
和value=r
表示value
至少为6。因此,您不满足任何条件。如果(值>=5)尝试,
,您将看到相应的消息
更好的方法是尝试intr=ran.nextInt(5)+1
获取介于1和5之间的值。int r=ran.nextInt(0)+6和value=r
表示value
至少为6。因此,您不满足任何条件。如果(值>=5)尝试,
,您将看到相应的消息
更好的方法是尝试
intr=ran.nextInt(5)+1代码>获取1到5之间的值。这是因为您在race()
'的本地范围内初始化r。这是因为您在race()
'的本地范围内初始化r。程序在main()
方法中开始执行,因此,如果像在您的示例中一样,您在main()中没有代码
程序将完成该方法,然后终止
在您的程序中,看起来您正在尝试使用display()
。要使用它,首先需要类赋值的实例2
这将创建名为a2的类Assignment2的实例
Assignment2 a2 = new Assignment2();
然后,您可以使用我们命名为a2的对象来调用任何方法。我在这里调用display()
程序在main()
方法中开始执行,因此,如果像在您的示例中一样,在main()
中没有代码,程序将完成该方法,然后终止
在您的程序中,看起来您正在尝试使用display()
。要使用它,首先需要类赋值的实例2
这将创建名为a2的类Assignment2的实例
Assignment2 a2 = new Assignment2();
然后,您可以使用我们命名为a2的对象来调用任何方法。我在这里调用display()
在此intr=ran.nextInt(n)+6
n
必须是正数,否则您将得到IllegalArgumentException
,在您的情况下为0
正如托莫斯建议的那样,您应该使用value=ran.nextInt(5)+1代码>以获得介于1和5之间的值,它将正常工作。遵循javadoc更好地理解它。在本intr=ran.nextInt(n)+6
n
必须是正数,否则您将得到IllegalArgumentException
,在您的情况下为0
正如托莫斯建议的那样,您应该使用value=ran.nextInt(5)+1代码>以获得介于1和5之间的值,它将正常工作。遵循javadoc更好地理解它。显然,你也必须做这些改变
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();
}
我把所有的方法都改为“静态” 从这一点看来,你也必须做这个改变
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();
}
我把所有的方法都改为“静态” 我刚刚意识到这个值=r。你能编辑这个问题并加上value=r
吗?我刚刚意识到value=r。即使在中添加,也不会有任何变化。您可以编辑问题并添加value=r
吗?您将得到一个编译错误,因为display()
不在静态上下文中。您将得到一个编译错误,因为display()
不在静态上下文中。谢谢。我一直试图在main中运行display作为display();,但它一直说我不能将非静态调用为静态,即使将所有方法都更改为静态。我不记得如何将这些方法调用到main中,尽管我已经在下面做了,哈哈,现在这很有意义。非常感谢你。我对编程相当陌生,所以我得到的每一点帮助和所有提醒都非常有用。它真的有用吗?ran.nextInt(0)肯定会通过一个IllegalArgumentExceptionNo,它不起作用。当我把它改为ran.nextInt(5)+1时;它运行了一次,现在不会再打印了。:/我不知道为什么它只运行一次,因为您只调用display()
一次。。您必须在循环中调用它才能运行多个times@KuldeepJain谢谢,我没注意到,但有人在另一个回答中指出了。谢谢。我一直试图在main中运行display作为display();,但它一直说我不能将非静态调用为静态,即使将所有方法都更改为静态。我不记得如何将这些方法调用到main中,尽管我已经在下面做了,哈哈,现在这很有意义。非常感谢你。我对编程相当陌生,所以我得到的每一点帮助和所有提醒都非常有用。它真的有用吗?ran.nextInt(0)肯定会通过一个IllegalArgumentExceptionNo,它不起作用。当我把它改为ran.nextInt(5)+1时;它运行了一次,现在不会再打印了。:/我不知道为什么…。@chopin.kochanek它只运行