虽然循环结束,即使没有调用该方法[Java]

时间:2014-09-24 03:59:35

标签: java loops

我的项目的一个要求是程序循环直到用户按下" X"键。我有这个方法,但即使没有调用该方法,程序也会终止。这是我的代码:

while (terminate == false)
{
    // Ask user for input

    switch (command)
    {
        case "I":
        {
            // Do stuff
        }

        case "X":
        {
            terminateProgram();
        }
    }
}

这是我的终止方法:

private static boolean terminateProgram()
{
    terminate = true;
    return terminate;
}

即使我进入"我"关键,循环结束后的情况为" I"完成了。 " I"如果terminateProgram();则正常工作;被评论。如何在我输入" X"?

时才能停止循环

1 个答案:

答案 0 :(得分:3)

每个案例陈述中都需要break

阅读fall-through,这是您当前的代码正在做的事情。

while (!terminate)
{
    // Ask user for input

    switch (command)
    {
        case "I":
        {
            // Do stuff
            break;
        }

        case "X":
        {
            terminateProgram()
            break;
        }
        default:
            // Do something default if no condition is met.
    }
}

然后在这里:

private static void terminateProgram()
{
    terminate = true; // if this method simply is to terminate a program
                      // I'm not quite sure why you need a `terminate` variable
                      // unless you're using it in another part of the program.
                      // A simple system.exit(0) would suffice.
    System.exit(0);
}