我遇到 JOptionPane 和 if/else 语句的问题

I am having Issues with JOptionPane and if/else statements

我在使用 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。所以我不得不把 ans = 放在除了最后两个之外的所有 JOptionPane 语句之前。

您没有在每个问题中更改 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");
        }
    }
}