2017-12-19 12 views
0

申し訳ありませんが、私は既に質問されているこの質問をしていますが、私はプログラムでnoobのようなものです、私はこのバグを修正する方法を研究したが、それ。私はここのコードブロックをコンパイルしようとしています:コンパイルエラーjava.lang.nullpointerexception

//Default constructor 
public Game() { 
    potAmount = 100; 
    betAmount = 0; 
} 

public int getBetFromUser() { 
    //Introduction to the game 
    System.out.println("Welcome to Solitaire Dice Game..bet an amount\r\n" + 
      "\t-if you roll triples you win triple your bet,\r\n" + 
      "\t-if you roll doubles you win double your bet,\r\n" + 
      "\t-if you roll 10 or over, you keep your bet\r\n" + 
      "\t-otherwise you lose your bet\r\n" + 
      "A bet of 0 ends the game\r\n"); 
    System.out.println("Your current pot is 100"); 
    System.out.println("Enter your bet amount:"); 
    betAmount = keyboard.nextInt(); 

    return betAmount; 

そして私は私のメインクラスでそれを呼び出すようにしようとしていますが、私は、このコンパイルエラーを取得:

は、あなたのベット額を入力します。

例外をAssign3.main(Assign3.java:9)でGame.getBetFromUser(Game.java:26) で「メイン」スレッドjava.lang.NullPointerExceptionが に

+4

'keyboard'は宣言され初期化されていますか? – AntonH

+0

キーボードスキャナは、public class game – JimmyJeans

+1

のデフォルトのコンストラクタの上に宣言されています。どこで初期化されますか?あなたは宣言をしただけですが、初期化はしていないからです。 – AntonH

答えて

2

これは、コンパイルエラーがない、これはでスローされた例外はありますランタイム。 呼び出す前にkeyboard変数を初期化する必要がありますkeybord.nextLine()

0

このことを知っているかもしれません。しかし、他の人にとって私は反復するでしょう。コンパイル時エラーと実行時エラーには違いがあります。コンパイル時には、コンパイラの構文エラーをチェックし、構文エラーがなければ.classファイルを作成します。構文上のエラーがあれば、コードはコンパイルされません。実行時/実行時のエラーは、プログラムの実行中に発生するイベントまたは状況ですが、プログラムの命令の通常の流れを妨げます。

関連する問題