尝试使用扫描仪类循环函数

时间:2011-06-21 16:05:45

标签: java while-loop java.util.scanner

我是Java的初学者,想知道是否有人可以帮我解决这个问题。

我正在尝试做的是尝试循环用户输入。我想知道当我尝试运行loopPlay();

时,我是怎么得到空指针异常的

编辑:我现在明白我还没有初始化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--;
            }

        }
    }
}

3 个答案:

答案 0 :(得分:1)

像其他人说的那样,你需要初始化userInput。下面的行将调用InputReader构造函数。

private InputReader userInput = new InputReader();

答案 1 :(得分:0)

肯定userInput未初始化,且为null

答案 2 :(得分:0)

userInput尚未初始化,请更改:

private InputReader userInput;

private InputReader userInput = new InputReader();