user4617245
user4617245

Reputation: 21

RuntimeException: Uncompilable source code - cannot find symbol

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

Answers (1)

M A
M A

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

Related Questions