由于某种原因,输出不会打印

时间:2012-02-13 18:00:18

标签: java loops printing println

我一直在研究一个应该输出赛车的获胜状态的程序。我认为我已经正确设置了所有内容,并且上周在课堂上遵循了我的导师大纲。但是,这样做我无法打印输出。我的想法是我可能陷入困境,但我真的不知道如何摆脱困境。我现在已经工作了四个小时,并且搜索了低至高的答案但无济于事。编译时没有错误,所以我不确定问题是什么。

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!");
        }
    }
}

7 个答案:

答案 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();
}

我将所有方法切换为“静态”;