這個程序只是一本java書籍的解釋程序。然而,在我編譯並運行該程序後,出現運行時錯誤。我是java編程的新手。 的代碼如下:簡單java編程的運行時錯誤nullpointerexception
class GuessGame{
Player p1;
Player p2;
Player p3;
public void startgame(){
p1=new Player();
p1=new Player();
p1=new Player();
int guessp1=0;
int guessp2=0;
int guessp3=0;
boolean p1isRight=false;
boolean p2isRight=false;
boolean p3isRight=false;
int targetNumber= (int) (Math.random() * 10);
System.out.println("Ï am thinking of a number between 0 and 9");
while(true){
p1.guess();
p2.guess();
p3.guess();
guessp1=p1.number;
System.out.println("Player 1 guessed " +guessp1);
guessp2=p2.number;
System.out.println("Player 2 guessed " +guessp2);
guessp3=p3.number;
System.out.println("Player 3 guessed " +guessp3);
if(guessp1==targetNumber)
p1isRight=true;
if(guessp2==targetNumber)
p2isRight=true;
if(guessp3==targetNumber)
p3isRight=true;
if(p1isRight || p2isRight || p3isRight){
System.out.println("We have a winner!!");
System.out.println("Player 1 got it right ?" +p1isRight);
System.out.println("Player 2 got it right ?" +p2isRight);
System.out.println("Player 3 got it right ?" +p3isRight);
System.out.println("Game Over");
break;
}
else{
System.out.println("Players will have to try again");
}
}
}
}
class Player{
int number=0;
public void guess(){
number= (int) (Math.random() * 10);
System.out.println("Ï am guessing " +number);
}
}
public class GameLauncher{
public static void main(String [] args){
GuessGame game=new GuessGame();
game.startgame();
}
}
我得到的錯誤是:
? am thinking of a number between 0 and 9
? am guessing 0
Exception in thread "main" java.lang.NullPointerException
at GuessGame.startgame(GameLauncher.java:19)
at GameLauncher.main(GameLauncher.java:59)
的可能重複[什麼是空指針異常,以及如何解決這個問題?( http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-i-fix-it) – 2015-01-21 06:30:55
@JANNU你應該學會使用調試器。 – Biffen 2015-01-21 06:33:43