Reputation: 21
I am new to Java, and am writing a program to print 6 random numbers for a lottery ticket. I am receiving an error,
-Exception in thread "main" java.lang.RuntimeException: Uncompilable source -code - cannot find symbol - symbol: variable numbers - location: class lotto.Lottery - at lotto.Lottery.printNumbers(Lottery.java:52) - at lotto.Lottery.main(Lottery.java:34) -Java Result: 1
import java.util.Random;
import java.util.ArrayList;
public class Lottery {
static ArrayList<Integer> lottoNumbers = new ArrayList<Integer>();
static int MAX_NUMBERS = 6;
public static void main(String[] args)
{
generateNumbers();
printNumbers();
}
private static void generateNumbers()
{
int ticketNumber;
Random generateRandomNumber = new Random();
for (int count = 0; count < MAX_NUMBERS; count++)
{
ticketNumber = 1 + generateRandomNumber.nextInt(59);
lottoNumbers.add(new Integer(ticketNumber));
}
}
private static void printNumbers()
{
int count = 0;
for( Integer number : numbers )
{
if (count < 5)
if (count == 4)
System.out.print(number);
else
System.out.print(number + ", ");
else
{
System.out.println("\nPower Ball: " + number);
count++;
}
}
}
}
Upvotes: 0
Views: 2920
Reputation: 72874
Your code has a compilation error, hence the program fails to run: the variable numbers
is not defined anywhere. If you want to loop over the generated numbers, use lottoNumbers
which was filled by the generateNumbers
method. You should also increment count++
after each element is printed (I would strongly encourage you to always use curly braces after if
statements to avoid bugs):
int count = 0;
for (Integer number : lottoNumbers) {
if (count < 5) {
if (count == 4) {
System.out.print(number);
} else {
System.out.print(number + ", ");
}
} else {
System.out.println("\nPower Ball: " + number);
}
count++;
}
Upvotes: 2