Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输出赢得';因为某种原因我不能打印_Java_Loops_Printing_Println - Fatal编程技术网

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它只运行