0

私のブラックジャックでは、プレーヤーをヒットまたはスタンドさせてから、ループを終了するためにテストするために、次のコードを使用します。

int runLoopCount1 = 0;
    for (int i = 0; i < players.length; i++) {
        if (players[i].wantSplit = false){
                if(players[i].getStatus() == true){
                    runLoopCount1++;
                }
        }

        else if (players[i].wantSplit = true){
            if ((players[i].splits[0].busted == true||
                 players[i].splits[0].standed == true) &&
                (players[i].splits[1].busted== true ||
                 players[i].splits[1].standed == true)){ // null pointer here 
                        runLoopCount1++;
                }
            }
        }
                
   if(runLoopCount1 == players.length){
        runLoop = false;
   }

今、私はを取得しNullPointerExceptionます。なんでかわからないの?

4

3 に答える 3

2

あなたは本当に意味するのですか、if(players[i].wantSplit = false)それともif(players[i].wantSplit == false) 同じif(players[i].wantSplit = true)ですかif(players[i].wantSplit == true)

于 2012-11-29T22:45:22.677 に答える
0

splits各プレーヤーで正しく初期化されていない可能性があります。

players[i].splits[0].standed
于 2012-11-29T22:45:14.513 に答える
0

これは、インスタンス化されていないオブジェクトにアクセスしようとしていることを意味します。たとえば、次の場合:

players[i].wantSplit

ただしplayers[i]、インスタンス化されなかった場合は、nullポインタ例外がスローされます

于 2012-11-29T22:46:24.903 に答える