我对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");
}
}
}

基本上,我从未重新定义过ans。因此,除了最后两个语句外,我必须将ans =放在所有JOptionPane语句之前。

最新更新