Вывод не будет печататься по какой-то причине - PullRequest
0 голосов
/ 13 февраля 2012

Я работал над программой, которая должна выдавать статус победителя гоночной тележки.Я думал, что все настроил правильно, и следовал плану моего преподавателя в классе на прошлой неделе.Тем не менее, при этом я не могу получить вывод на печать.Я думаю, что я могу застрять в петле, но я действительно не знаю, как выйти из этого.Я работал над этим уже четыре часа и искал ответы низко и высоко, но безрезультатно.Я не получаю ошибок при компиляции, поэтому я не уверен, в чем может быть проблема.

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 ]

2 голосов
/ 13 февраля 2012

В вашем методе main() ничего нет, поэтому на самом деле ничего не выполняется.Возможно, вы имеете в виду:

public static void main(String args[]) {
    (new Assignment2()).display();
}

Поскольку ваш код существует сейчас, вы должны покончить с r (он не используется) и изменить следующее:

// int r = ran.nextInt(0) + 6;
value = ran.nextInt(5) + 1;
1 голос
/ 13 февраля 2012

int r = ran.nextInt(0) + 6; и value = r означают, что value равно как минимум 6. Таким образом, вы не выполняете никаких условий. Попробуйте if (value >= 5), и вы должны увидеть соответствующее сообщение.

Еще лучше, попробуйте int r = ran.nextInt(5) + 1;, чтобы получить значения от 1 до 5.

0 голосов
/ 13 февраля 2012

Начните с того, что вы должны сделать это также

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

Я переключил все методы на "статические";

0 голосов
/ 13 февраля 2012

В этом int r = ran.nextInt(n) + 6; n должно быть положительное число, иначе вы получите IllegalArgumentException, что в вашем случае равно 0.

Как предложил Томос, вы должны использовать value = ran.nextInt(5) + 1; для получения значениймежду 1 и 5, и это будет работать нормально.Следуйте javadoc Random.nextInt (int) , чтобы лучше понять это.

0 голосов
/ 13 февраля 2012

Программа начинает выполнение в методе main(), поэтому, если, как в вашем примере, у вас нет кода в main(), программа завершит этот метод и завершит работу.

В вашей программе похоже, что вы пытаетесь использовать display(). Чтобы использовать это, вам сначала нужен экземпляр вашего класса Assignment2.

Это создает экземпляр класса Assignment2 с именем a2

Assignment2 a2 = new Assignment2();

Затем вы можете использовать свой объект, который мы назвали a2, для вызова любого метода. Здесь я звоню display()

a2.display();
0 голосов
/ 13 февраля 2012

Это потому, что вы инициализируете r в локальной области действия race().

0 голосов
/ 13 февраля 2012

Ваш метод main не содержит кода. Вот почему ваша программа ничего не делает. Измените его на:

public static void main (String[] args)
{
    Assignment2 as = new Assignment2();
    as.display();
}
...