java - 尝试使用扫描器类循环函数

标签 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--;
            }

        }
    }
}

最佳答案

正如其他人所说,您需要初始化 userInput。下面的行将调用 InputReader 构造函数。

private InputReader userInput = new InputReader();

关于java - 尝试使用扫描器类循环函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6428471/

相关文章:

java - 将 QByteArray 反序列化为 Java 数据类型

Java 继承和包装

javascript - 如何填充数组以在 while 循环中使用

java - 如何将用户输入连接到计算java

java - 使用 BufferedReader 和 Scanner 读取文本文件

java - 得到错误的餐费

java - Activity 中的自定义标题图标

python - 重试失败的循环 Python

java - 如何使子类中的变量在主类中使用

java - 如何使用 Java 在 Play 框架中读取 JSON 文件