I am making a program that makes a randomized lotto ticket and compares it to a user's set of numbers. My problem is I cannot locate the error of NullPointerException
. I also feel like my method for comparing numbers is sub-optimal but I can't think of better way to write it.
package lotteryapplication;
import java.util.Random;
import java.util.Scanner;
public class LotteryApplication {
public static int lotteryNumbers[];
public static int usersNumbers[] = new int[5];
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println(
" This is the lottery. Numbers in my lottery range from 1 through 60.");
System.out.println(" See if you can win\n");
getUserPicks();
getRandomNumbers();
checkLotteryMatch();
}
public static void getUserPicks() {
Scanner keyboard = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.print(String.format(
"Enter a Number from 1 through 60 for spot :" + (i + 1))
+ "\n");
usersNumbers[i] = keyboard.nextInt();
keyboard.nextLine();
}
}
public static void getRandomNumbers() {
int lotteryNumbers[] = new int[5];
Random r = new Random();
for (int i = 0; i < 5; i++) {
lotteryNumbers[i] = r.nextInt(60) + 1;
}
}
public static void checkLotteryMatch() {
int matchedNums = 0;
if (usersNumbers.length == lotteryNumbers.length) {
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[0] == lotteryNumbers[i]) {
matchedNums++;
}
}
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[1] == lotteryNumbers[i]) {
matchedNums++;
}
}
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[2] == lotteryNumbers[i]) {
matchedNums++;
}
}
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[3] == lotteryNumbers[i]) {
matchedNums++;
}
}
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[4] == lotteryNumbers[i]) {
matchedNums++;
}
}
for (int i = 0; i < lotteryNumbers.length; i++) {
if (usersNumbers[5] == lotteryNumbers[i]) {
matchedNums++;
}
}
}
if (matchedNums == 1) {
System.out.println("You only got one match sorry you win nothing.");
}
if (matchedNums == 2) {
System.out.println("You only got two matched sorry you win nothing");
}
if (matchedNums == 3) {
System.out.println(
"you will recieve a free Lottery ticket as the prize");
}
if (matchedNums == 4) {
System.out.println("You will recieve a $2,000 prize");
}
if (matchedNums == 5) {
System.out.println("You will recieve a 500,000 prize");
}
if (matchedNums == 6) {
System.out.println("You will recieve a grand prize of $1,000,000");
}
}
}