java - 我在使用 JOptionPane 和 if/else 语句时遇到问题
问题描述
我在使用 JOptionPane 时遇到问题。我的程序应该问用户一个问题,如果他们回答 Y 则继续下一个问题。但如果他们回答 N,它会问另一个问题。我的问题是当用户用 N 回答时,它只是转到 Y 问题。它基本上按照提问的顺序移动,而不是遵循 if-else 语句的参数。这是我的代码:
import javax.swing.JOptionPane;
public class Helper2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
helpMe();
}
public static void helpMe(){
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")){
JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
}else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
}else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}
解决方案
你并没有改变ans
每个问题的价值。尝试这样的事情:
import javax.swing.JOptionPane;
public class Helper2 {
public static void main(String[] args) {
helpMe();
}
public static void helpMe() {
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")) {
ans = JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
} else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
} else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}
推荐阅读
- node.js - multer req.files undefined with axios in react
- python - 如何使用 python 和 firestore 触发器在谷歌云函数中获取占位符的值?
- c# - 在本地连接到 IMAP 服务器
- plc - 在 TwinCAT 中创建一个简单的查找表
- sql-server - Talend 作业从 SqlServer db 中选择记录,执行查询,然后一一更新每条记录
- c - C 中的汇编代码将 1 加到输入和功率 x 次
- c - 如何在 c 中使用 fscanf 读取特定格式
- python - 为什么检查 MX 使用 dnspython 给出超时错误?
- pine-script - 仅在特定烛台上执行命令
- swift - 在guard let url之后,值仍然需要被解包