こんにちは、私は Java プログラミングが初めてで、最新のプロジェクトで問題に遭遇しました。私はボウリング用のスコアジェネレーターを作成してコードを完成させましたが、テストに行ったときを除いて、
「スレッド「メイン」での例外 java.lang.NullPointerException at Bowling_Score.main(Bowling_Score.java:34)」
私はそれを修正するためにあらゆることを試み、大量の Web サイトを調べましたが、問題を解決する解決策はありませんでした。おそらく簡単に修正できるものですが、答えが見つからないようです。問題のある行は、ここでは 2 行目です。
System.out.println("Frame 1, Throw 1");
Frame1Throw1 = sc.nextInt();
これは、変数を使用してスキャナーを使用する方法を私が知っている唯一の方法です。より良い方法があれば教えてください。変数 Frame1Throw1 がリストの最初の変数であるため、これも問題になる可能性があります。
変数は正しく、スキャナの名前は sc です
私が言ったように、私はJavaが初めてで、今は基本を学んでいるので、具体的に答えてください。これは私の最初の大きなプロジェクトです。
ありがとう!
PS私はEclipseを使ってコードを書いていますが、それが重要かどうかはわかりません
* 1件の回答があり、役に立ちましたが、うまくいきませんでした。これは、回答に役立つ可能性のあるコードの最初の部分です。
import java.util.Scanner;
public class Bowling_Score {
private static Scanner sc;
public static void main(String[] args) {
//All Variables
int Frame1Throw1 = 0;
int Frame1Throw2 = 0;
int Frame2Throw1 = 0;
int Frame2Throw2 = 0;
int Frame3Throw1 = 0;
int Frame3Throw2 = 0;
int Frame4Throw1 = 0;
//Then I have one variable for each throw of the game, and one for the final total score.
//Directions
System.out.println("To put in your score, put the number of pins you knocked down in the throw specified. If you get a strike, enter a 10 in the first throw of the frame and a 0 in the second throw of the frame. If you get a spare, Ener a 0 in the first throw of the frame and 10 in the second throw of the frame.");
//Frame 1
System.out.println("Frame 1, Throw 1");
Frame1Throw1 = sc.nextInt();
if (Frame1Throw1 == 10){
Frame1Throw1 = Frame1Throw1 + Frame2Throw1 + Frame2Throw2;
Frame1Throw2 = 0; }