Fejl i Java-program
Er der nogen der kan rette fejlen i dette Magic8ball-program?import javax.swing.JOptionPane;
public class magic8ball {
public static void main(String arguments[]) {
int counter = 0;
do {
String besked; // her gemmes svaret på 8ball spørgsmålet
int randomTal = (int) (Math.random()*7+1); // tilfældigt tal mellem 0 og 7
if(randomTal == 1) besked = "Ja, er du gal!";
else if(randomTal == 2) besked = "NEJ!!";
else if(randomTal == 3) besked = "Måske...";
else if(randomTal == 4) besked = "Det ved jeg sgu ikke...";
else if(randomTal == 5) besked = "Prøv at spørge igen senere";
else if(randomTal == 6) besked = "Det vil jeg da ikke ud med :)";
else if(randomTal == 7) besked = "Øhh? Prøv at spørge på en anden måde. Jeg forstår ikke spørgsmålet!";
else besked = "Det kan jeg ikke svare på!";
String question = null;
while (question == null) { // Hvis brugeren trykker Cancel eller Escape
question = JOptionPane.showInputDialog(null, "Skriv et spørgsmål og så vil "
+ "den magiske 8ball \ngive dig svaret - WOOOW, helt fantastisk!\n\n"
+ "Skriv exit for at afslutte programmet.");
}
while (question.equals("")) { // Hvis brugeren trykker OK uden at indtaste noget
question = JOptionPane.showInputDialog(null, "Skriv et spørgsmål og så vil "
+ "den magiske 8ball \ngive dig svaret - WOOOW, helt fantastisk!\n\n"
+ "Skriv exit for at afslutte programmet.");
}
if(question.equalsIgnoreCase("exit")) // Hvis brugeren indtaster "exit"
System.exit(0);
else // Udskriver en besked hvis der er indtastet noget korrekt
JOptionPane.showMessageDialog(null, besked);
counter++;
} while (counter > 0);
}
}
Når man trykker OK uden at have indtastet noget og efterfølgede trykker Cancel uden at have indtastet noget, så lavet programmet nullPointerException.
