按" q"终止程序

时间:2016-11-11 04:55:11

标签: java

我试图在用户输入" q"时尝试终止程序。当用户输入" q&#34 ;?时,如何停止最后两行代码不执行? 这是我的代码:

public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
    String expression = "";
    while (!expression.equalsIgnoreCase("q")) {
        System.out.println("Type an expression written in Infix notation: ");
        expression = input.next();
        PostFixConverter convert = new PostFixConverter(expression);
        System.out.println("This expression writtien in Postfix notation is: \n" + convert.infixToPostfix());

    }
}
}

3 个答案:

答案 0 :(得分:2)

如果您想根据用户输入连续迭代代码,而不是while使用do-while循环。

Scanner input = new Scanner(System.in);
            String expression = "";

            System.out.println("Type an expression written in Infix notation: ");
            expression = input.next();

            if(!expression.equalsIgnoreCase("q"))
            {
                do{
                    PostFixConverter convert = new PostFixConverter(expression);
                    System.out.println("This expression writtien in Postfix notation is: \n" + convert.infixToPostfix());

                    System.out.println("Type an expression written in Infix notation: ");
                    expression = input.next();
                }while (!expression.equalsIgnoreCase("q"));
            }   
            }
        }

答案 1 :(得分:1)

一种选择是简单地使用if语句来检查值:

           if(!expression.equalsIgnoreCase("q")){
                PostFixConverter convert = new PostFixConverter(expression);
                System.out.println("This expression writtien in Postfix notation is: \n" + convert.infixToPostfix())
           }
           else{
                System.exit(1);
           }

答案 2 :(得分:1)

当您看到用户输入“q”时,只需从循环中断开。还要检查是否还有更多输入:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String expression = "";
    while (input.hasNext()) {
        System.out.println("Type an expression written in Infix notation: ");
        expression = input.next();
        if (expression.equalsIgnoreCase("q")) {
            break;
        }
        PostFixConverter convert = new PostFixConverter(expression);
        System.out.println("This expression writtien in Postfix notation is: \n" + convert.infixToPostfix());
    }
}

注意

其他一些建议重复代码 - 它们在循环外部打印相同的语句。代码重复永远不是一个好主意 - 它使您的代码难以维护。如果您需要更改消息怎么办?现在你需要在两个地方做到这一点。