这个问题在这里已有答案:
对不起,如果我问这个已被问过的问题,但我在编程方面是一个菜鸟,我试着研究如何修复这个bug,但我仍然无法解决它。我想在这里编译这段代码:
//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)中的线程“main”java.lang.NullPointerException中的异常
这不是编译错误,这是在运行时抛出的异常。你需要在调用keyboard
之前初始化keybord.nextLine()
变量
可能你知道这件事。但对于其他人,我会重新进行迭代。编译时错误和运行时错误之间存在差异。当我们编译它时,java编译器做的是检查语法错误,如果没有语法错误,那么它将创建一个.class文件。如果有任何语法错误,那么代码将无法编译。而在运行时/执行错误中,是在程序执行期间发生的事件或情况,会破坏程序指令的正常流程。