私はJavaの初心者で、誰かがこれで私を助けてくれるのだろうかと思っていました。スキャナクラスで関数をループしようとしています
私がしようとしているのは、ユーザー入力をループさせることです。私はloopPlay()を実行しようとすると、nullポインタ例外をどうやって得ているのだろうと思っていた。
私はuserInputを初期化していないことを理解しました。誰かが私にそれをする方法を教えてもらえますか?
import java.util.Scanner;
public class InputReader
{
private Scanner scanner;
/**
* Create a new InputReader to read user input.
*/
public InputReader()
{
scanner = new Scanner(System.in);
}
/**
* @return the user's input as a String
*/
public String getInput()
{
return scanner.nextLine();
}
}
と
class StringPlay {
private InputReader userInput;
public void loopPlay(int timesToLoop) {
if (timesToLoop <= 0) {
System.out.println("Error: input too low.");
return;
} else {
int counter = timesToLoop;
while (timesToLoop > 0) {
System.out.println("Type a sentence: ");
String input = userInput.getInput();
System.out.println("You typed: "+ input);
counter--;
}
}
}
}
ユーザ入力が初期化されることはありませんか?あなたはloopPlay()の中で呼び出すだけですが、あなたはその参照に対してnew()を言ったことはありません。 – Dan