你显然没有在这里展示整个画面,这让事情有待猜测和假设。这是一种非常糟糕的提问方式,但无论如何我都会给它一个戳。
使用 输入对话框 是一个奇怪的选项,用于简单地询问用户他或她是否想要使用另一个 Activity。您是否考虑过如果用户只是关闭强制它返回 null 的输入对话框会发生什么。通过仅仅关闭输入对话框,它应该被认为与输入 "n" ......还是应该被视为相同?如果用户输入“y”或“n”以外的任何内容,比如可能只是一个空格,该怎么办。那会发生什么?这里有很多事情需要考虑,还有……更多(不必要的)代码。
我认为您正在寻找的是 continue 关键字,它在 for 循环中导致循环在语句调用后跳过所有循环代码并立即跳转到该循环的下一次迭代:
for (int i = 0); i < alphabetLength; i++) {
..............................
..............................
String continueQuery = JOptionPane.showInputDialog("Another activity? (y/n)");
if ("y".equals(continueQuery)) {
continue;
}
else if ("n".equals(continueQuery) || continueQuery == null){
break;
}
..............................
..............................
}
请注意我如何在 else if 中添加条件,用户只需关闭输入对话框窗口即可。哦,如果您希望流程在提供 "n" 时跳出 for 循环,那么只需取消注释 break 语句.
当然,如果对输入对话框的调用是 for 循环中的最后一个代码,那么您将不需要 continue 语句,您不需要检查“ y”,因为无论如何下一次迭代都会自动发生。你只需要:
if ("n".equals(continueQuery) || continueQuery == null){
break;
}
正如我之前所说,使用 输入对话框 是用于此类提示的一个奇怪选项,因为用户只需要输入 "y" 或“n” 表示 是 或 否。更好的选择是使用简单的Confirm Dialog 代替,因为用户可以选择Yes、No,也许还有Cancel 按钮,如果你喜欢,像这样:
for (int i = 0); i < alphabetLength; i++) {
..............................
..............................
int userOption = JOptionPane.showConfirmDialog(null, "Would you like another Activity?",
"Another Activity?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (userOption == JOptionPane.YES_OPTION) {
continue;
}
else if (userOption == JOptionPane.NO_OPTION) {
break;
}
..............................
..............................
}