我对joptionpane和if/else语句有问题

yftpprvb  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(308)

我的工作窗格有问题。我的程序应该问用户一个问题,如果他们回答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"); 
            }

        }
        }
uurity8g

uurity8g1#

基本上,我从来没有重新定义过 ans . 所以我不得不 ans = 首先 JOptionPane 除了最后两个。

tyg4sfes

tyg4sfes2#

你没有改变 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");
        }
    }
}

相关问题