创建命令行,如果语句不起作用

Aid*_*dan 3 java shell loops

我想创建一个命令行,只是为了运行基本命令.到目前为止,我已经做到了,所以人们可以告诉程序他们的名字.但是,当我没有输入名称时,它会像我一样对待它.这是我的班级:

public static void main(String args[])
        throws IOException
{
    int a = 1;

    do
    {
        System.out.print("$$: ");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String wtt = null; // wtt = what they typed!
        wtt = br.readLine();

        if(wtt == null)
        {
            System.out.println("Why wont you tell me your name!");
        }
        else
        {

            System.out.println("Thanks for the name, " + wtt);
        }

    }
    while(a == 1);
}
Run Code Online (Sandbox Code Playgroud)

这是输出

$$:好吧

谢谢你的名字,好吧

$$:洞

谢谢你的名字,洞

$$:

谢谢你的名字,

为什么不起作用?

rge*_*man 7

调用readLine()一个BufferedReader只会null在输入结束时返回.在这里,输入还没有结束,你刚刚输入一个空行,所以""(空字符串)就是结果.

您需要结束输入流,通常使用Ctrl-C.然后你会得到"Why wont you tell me your name!".但是你需要打破你的无限循环.