我试图在用户输入" 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());
}
}
}
答案 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());
}
}
其他一些建议重复代码 - 它们在循环外部打印相同的语句。代码重复永远不是一个好主意 - 它使您的代码难以维护。如果您需要更改消息怎么办?现在你需要在两个地方做到这一点。