-2

こんにちは、私は 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; }
4

1 に答える 1